内联jQuery脚本在AJAX调用中不起作用
我有一个问题:
虽然我从ajax的另一个页面调用内联脚本(也使用jQuery) – 似乎jQuery没有更多的定义(?),我不能使用任何应该应用的jQuery函数(根据内联脚本)内容。
它基本上是一个新闻列表,包含特定新闻项的链接。 我现在更喜欢使用内联脚本,因为我不会在其他地方使用此function。
$.ajax({ url: href, cache: false, success: function(html){ $('#fancy_ajax').append($(html).find('.mainContentPadded')); } });
如您所见,我只是调用另一个页面的一部分并将其内容附加到页面。
当我加载整页(不是它的一部分)时 – jQuery按预期工作(这就是为什么我遇到了这个想法,它需要被“重新加入”)。
谢谢!
因此,如果我正确理解您的问题,您的html变量中包含一些JavaScript吗? 如果是这样,它将无法工作,因为由于安全风险,浏览器不会执行从AJAX命中检索到的JavaScript。
我建议您在页面中包含必要的javascript代码,以启动Ajax请求,以便在您添加新内容时它已经可用。
*编辑…
monksp添加了一个很棒的链接作为评论,显示如何让jQuery完全按照你的意愿行事。
这里也有一些代码可以手动执行相同操作:
Test JavaScript JSON
这是testjs.json的内容:
{"html":"Click me
","js":"$(\".newelement\").click(function() { alert($(this).text()); });"}
最后有一堆存在插件和其他东西动态地包含javascript。 我过去使用过YUI Get: http : //developer.yahoo.com/yui/3/get/
我想,我对这个问题感到困惑。 您发布的javascript是通过ajax加载到页面中的吗? 比如,你在浏览器中加载页面,然后发生了什么事情,javascript被加载到页面中? 这是行不通的,因为以这种方式加载的任何javascript都不会被执行。
如果可能的话,我建议将它加载到原始页面的javascript中。 如果没有,您可以获取ajax请求的结果,并通过它查找脚本标记,并将其内容作为成功函数的一部分eval()。 它不是真正有效(或超级安全,确保你绝对信任加载内容的来源),但它将完成工作。
- Javascript – 如何在对象文字的ajax调用中绑定’this’
- Angular $ http.get和jQuery $ .getJSON错误,但URL在自己的选项卡中打开正常
- 如何使用jQuery DataTables在ajax调用中传递额外的参数?
- 与Ajax的深层链接不适用于最新的jquery地址
- Web API复杂参数属性均为null
- 使用ajax / json和PHP的Highcharts数据系列问题
- jquery ajax调用空查询字符串
- 我可以使用AJAX +跨域+ jsonp测试URL是否可访问?
- Windows 10上的Edge 32位阻止对网络错误0x2efd的localhost的ajax调用