Запуск Javascript из файла AJAX - PullRequest
0 голосов
/ 14 декабря 2010

Я пытался заставить это работать целую вечность, пробовал множество SO вопросов / ответов, но не очень далеко.

Я думаю, что изначально у меня было 2 проблемы, одну, которая, я надеюсь, я решила.

Я использую JotForm (простой создатель форм, использующий прототип). У меня есть меню в стиле facebook ( AjaxFlagMenu ), которое создает меню стиля ajax с вертикалью, которое извлекает фрагменты HTML из внешних файлов (которые в моем случае имеют форму Jotform).

На данный момент в верхней части «главной» страницы, которая содержит меню, у меня есть:

<script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min.js"></script>
<script type="text/javascript" src="/js/jquery.corner.js"></script>
<script type="text/javascript" src="/js/jquery.flagmenu.js"></script>
<script type="text/javascript">
jQuery.noConflict();
jQuery(document).ready(function($){
    var Menu = $("#_Menu").AjaxFlagMenu({
    Caption:'Manage Profile',
    CaptionClass:'CaptionClass',
    onOutClass:'onOutClass',
    onOverClass:'onOverClass',
    onClickClass:'onClickClass',
    hscOutClass:'hscOutClass',
    hscClickClass:'hscClickClass',
    Loading_gif:'/images/loading.gif',
    ajaxContent:'ajaxContent'
    });
    //Basic
    Menu.add({
        Title:'Basic Info',
        onOutIcon:'/images/icon-vcard-c.png',
        onClickIcon:'/images/icon-vcard-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-basic.php',
        data:''
    });
    //Profile Picture
    Menu.add({
        Title:'Profile Picture',
        onOutIcon:'/images/icon-camera-c.png',
        onClickIcon:'/images/icon-camera-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-photo.php',
        data:''
    });
    //Pricing and Offers
    Menu.add({
        Title:'Pricing and Offers',
        onOutIcon:'/images/icon-pound-c.png',
        onClickIcon:'/images/icon-pound-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-pricing.php',
        data:''
    });
    //Services
    Menu.add({
        Title:'Services',
        onOutIcon:'/images/icon-services-c.png',
        onClickIcon:'/images/icon-services-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-services.php',
        data:''
    });
    //Bio and Additional
    Menu.add({
        Title:'Bio and Additional',
        onOutIcon:'/images/icon-bio-c.png',
        onClickIcon:'/images/icon-bio-d.png',
        HtmlSatusContent:'',
        url:'/instructor/pages/mp-bio.php',
        data:''
    });
    $("#_td").corner("4px");
});
</script>
<script src="/js/jotform/prototype.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/protoplus-ui.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/jotform.js?v=3.1.92" type="text/javascript"></script>
<script src="/js/jotform/calendarview.js?v=3.1.92" type="text/javascript"></script>

Что мне нужно сделать, так это то, что при нажатии на пункт меню и загрузке HTML-кода с другой страницы мне нужно запустить JotForm.init();, чтобы включить функции проверки JotForm. Тем не менее, я даже не могу alert("Hello World"); работать на странице, которая вызывается.

Любая помощь будет отличной! Спасибо!

Ответы [ 2 ]

1 голос
/ 14 декабря 2010

В AjaxFlagMenu.js в строке выполняется ajax:

//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data });

Попробуйте добавить dataType: "html" следующим образом:

//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data,dataType: "html" });

Это оценит загружаемый вами javascriptчерез AJAX.

Вы найдете больше информации здесь: http://api.jquery.com/jQuery.ajax/#options


ПОСЛЕДНЕЕ РЕДАКТИРОВАНИЕ

Проблема в том, что AjaxFlagMenu не оцениваетJavaScript из ответа AJAX!

0 голосов
/ 14 декабря 2010

Вместо этого используйте код iframe JotForm.Вот как вы можете получить это.Откройте форму в JotForm Form Builder:

  1. Откройте вкладку «Настройка и обмен» на панели инструментов,
  2. Нажмите «Поделиться формой»
  3. Нажмите «Дополнительно»Параметры "
  4. Нажмите" Код iFrame "и скопируйте код формы на свой сайт.
...