Jquery 从AJAX文件运行Javascript
多年来我一直在努力让它发挥作用,尝试了大量的问题/答案,但没有走多远 我想我最初有两个问题,一个希望我已经解决了 我一直在使用JotForm(使用原型的简易表单创建者)。我有一个facebook风格的菜单(),它创建了一个verticleajax风格的菜单,从外部文件(在我的例子中都有一个Jotform表单)中提取html片段 目前,在包含菜单的“主页”顶部,我有:Jquery 从AJAX文件运行Javascript,jquery,ajax,prototypejs,jotform,Jquery,Ajax,Prototypejs,Jotform,多年来我一直在努力让它发挥作用,尝试了大量的问题/答案,但没有走多远 我想我最初有两个问题,一个希望我已经解决了 我一直在使用JotForm(使用原型的简易表单创建者)。我有一个facebook风格的菜单(),它创建了一个verticleajax风格的菜单,从外部文件(在我的例子中都有一个Jotform表单)中提取html片段 目前,在包含菜单的“主页”顶部,我有: <script src="http://cdn.jquerytools.org/1.2.5/jquery.tools.min
<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>
jQuery.noConflict();
jQuery(文档).ready(函数($){
变量菜单=$(“##菜单”).AjaxFlagMenu({
标题:“管理配置文件”,
CaptionClass:“CaptionClass”,
onOutClass:'onOutClass',
onOverClass:“onOverClass”,
onClickClass:'onClickClass',
hscOutClass:“hscOutClass”,
hscClickClass:'hscClickClass',
正在加载_gif:'/images/Loading.gif',
ajaxContent:“ajaxContent”
});
//基本的
菜单。添加({
标题:“基本信息”,
onOutIcon:“/images/icon-vcard-c.png”,
onClickIcon:“/images/icon-vcard-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp basic.php”,
数据:“”
});
//侧面图
菜单。添加({
标题:“个人资料图片”,
onOutIcon:“/images/icon-camera-c.png”,
onClickIcon:“/images/icon-camera-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp photo.php”,
数据:“”
});
//定价和优惠
菜单。添加({
标题:“定价和报价”,
onOutIcon:“/images/icon-pound-c.png”,
onClickIcon:“/images/icon-pound-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp pricing.php”,
数据:“”
});
//服务
菜单。添加({
标题:“服务”,
onOutIcon:“/images/icon-services-c.png”,
onClickIcon:“/images/icon-services-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp services.php”,
数据:“”
});
//生物和附加
菜单。添加({
标题:'生物和附加',
onOutIcon:“/images/icon-bio-c.png”,
onClickIcon:“/images/icon-bio-d.png”,
HtmlStatusContent:“”,
url:“/讲师/pages/mp bio.php”,
数据:“”
});
美元(4px);
});
然后我需要做的是,当单击菜单项并从另一个页面加载HTML时,我需要运行JotForm.init()
以启用JotForm验证功能。然而,我甚至似乎都不能发出警报(“Hello World”)代码>以在调用的页面上工作
任何帮助都会很好!谢谢大家! 在AjaxFlagMenu.js中,在执行ajax的行中:
//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data });
尝试添加数据类型:“html”
,如下所示:
//Ajax
var _XMLHTTPRequest = $.ajax({type: "GET",url:_url,data:_data,dataType: "html" });
这将评估通过AJAX加载的javascript
您将在此处找到更多信息:
后期编辑
问题在于AjaxFlagMenu没有从ajax响应中计算javascript请改用JotForm Iframe代码。这是你可以得到它的方法。在JotForm form Builder上打开表单:
谢谢你!没有改变任何事情,但看起来这是朝着正确方向迈出的一步。外部html文件上的脚本应该在
$(document).ready(function()
中,还是应该在
标记中?尝试在加载的html中执行一些简单的操作..如警报(1);看看它是否能评估这一点。通过ajax加载的html代码片段到底是什么样子的?我主要对javascript感兴趣……目前我已经收到警报(“Hello World”);但现在还没有。我只需要调用JotForm.init()
。但这是否也意味着我需要将JotForm js文件包含在外部文件本身中,或者我仍然可以将它们包含在html加载到的主“菜单”页面中?如果将其包含在主页中,应该不会有问题……为什么不尝试调用JotForm.init();
作为ajax请求()的回调?$.ajax({complete:function(){//Handle the complete event JotForm.init();}/..})
我想我发现了问题:)在AjaxFlagMenu.js中,在ajax调用之后,您可以看到一个变量被分配了xhttprq(_XMLHTTPRequest),下面几行,您有:_XMLHTTPRequest.onreadystatechange=function(){…},正如您在该函数中看到的,内容以纯文本形式加载到容器中,并且不会计算jabascript:
$(“#”+Options.ajaxContent).html(_-XMLHTTPRequest.responseText);.Add
JotForm.init()`在html编写完成后,就我所见,这应该是可行的,但我没有选择表单发布到哪里。它还依赖于JotForm服务器在线。如果它们宕机,我们网站的很大一部分也会宕机。