jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – jquery .load()不加载外部JS大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用没有选择器的 jquery.load()将外部内容加载到div元素中.如果加载的内容嵌入了JS,则JS按预期工作.但是,如果内容包含带有src = path-to-js-code的脚本标记,则不会加载js-code.

在这个观察中是否正确,如果有的话,除了在加载的内容中嵌入JS之外还有一个很好的解决方案吗?

编辑:
一些澄清和观察:

加载我正在使用的内容

$("#DivId").load("path/to/content.PHP",CallBACkFunction(response,status,xhr) {
    error checking and post processing code
});

将加载代码更改为:

$.get("path/to/content.PHP",xhr) {
    error checking
    $("#DivId").html(responsE);
    post processing
});

似乎没有改变行为(更多关于下面的行为)

我没有尝试解析响应以检索脚本src然后使用getScript().

现在更多关于行为……

使用Firefox,似乎外部JS已加载,但仅限于距离上次加载约2分钟.我没有看到Firebug中的尝试,除非在外部JS的最后一次加载后刷新大约2米. (奇怪的).当我进行JS代码更改并进行刷新时,它没有加载我的新代码,因此也没有加载原始问题.

所以我会根据这个澄清的行为(2m缓存?)撤回我的问题.

谢谢.

解决方法

.load()和.html()jQuery方法都使用.innerHTML属性.这不会执行使用< script>添加的脚本标签.使用常规的AJAX调用,例如.get()然后在回调中使用.append()来添加你的HTML字符串,脚本将在解析后运行,例如

$.get("path/to/content.PHP",function(response,xhr) {
    // error checking
    $("#DivId").append(responsE); // Any <script> tags in the response String will execute
    // post processing
});

事情是你需要确保你运行受信任的代码,如果它是由.append()添加

大佬总结

以上是大佬教程为你收集整理的javascript – jquery .load()不加载外部JS全部内容,希望文章能够帮你解决javascript – jquery .load()不加载外部JS所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。