gpt4 book ai didi

javascript - jquery .load() 不加载外部 JS

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:41:38 25 4
gpt4 key购买 nike

我正在使用 jquery.load() 没有 选择器将外部内容加载到 div 元素中。如果加载的内容嵌入了 JS,则 JS 将按预期工作。但是,如果内容包含带有 src=path-to-js-code 的脚本标记,则不会加载 js 代码。

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

编辑:
一些澄清和观察:

加载我正在使用的内容

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

将加载代码更改为:

$.get("path/to/content.php", CallbackFunction(response, status, xhr) {
error checking
$("#DivId").html(response);
post processing
});

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

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

现在更多关于行为......

使用 Firefox 时,似乎加载了外部 JS,但前提是距离上次加载大约 2 分钟。我没有在 Firebug 中看到任何尝试,除非在外部 JS 的最后一次加载后刷新大约 2m。 (诡异的)。当我更改 JS 代码并点击刷新时,它没有加载我的新代码,因此没有加载原始问题。

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

谢谢。

最佳答案

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

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

如果 .append() 添加的代码,您需要确保您运行的是受信任的代码

关于javascript - jquery .load() 不加载外部 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36829993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com