Запуск JavaScript из файла AJAX
-
09-10-2019 - |
Вопрос
Я пытался заставить это работать целую вечность, попробовал множество вопросов/ответов, но не очень далеко.
Я думаю, что изначально у меня было 2 проблемы, которые, надеюсь, я решил.
Я использовал Jotform (создатель простой формы, который использует прототип). У меня есть меню в стиле Facebook (Аяксфлагмену), которое создает меню в стиле вертикула 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");
работать на странице, которая называется.
Любая помощь была бы отличной! Благодарю вас!
Решение
В 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!
Другие советы
Вместо этого используйте код jotform iframe. Вот как вы можете получить это. Откройте свою форму на строителе формы Jotform:
- Откройте вкладку «Setup & Share» на панели инструментов,
- Нажмите на "Form Form"
- Нажмите на "Advanced Options"
- Нажмите «Код iframe» и скопируйте код формы на свой сайт.