javascript - .load() 在检索内容时是否保留内联 JavaScript?

标签 javascript jquery ajax

例如,$('#f').load('http://foobar.com #content'); 是否保留或去除内联 JavaScript,例如 onclick= “……”?

最佳答案

当您以这种形式使用“.load()”时,它会丢弃脚本标签并且不会执行脚本 - 像这样将选择器附加到 URL。

参见 this jQuery bug report获取更多信息。

当您将“.load()”与一个 URL 一起使用时:

$('#f').load('http://foobar.com', function () { ... });

然后它确实运行脚本,尽管它仍然会删除它们。我认为删除脚本的基本原理是当通过抓取内容并移动或复制它来操作 DOM 时,您通常不希望任何杂散的脚本 block 再次运行,但我不是 jQuery 贡献者所以我不确定。

edit — 在早上喝咖啡前的迷雾中重新阅读您的问题,我发现您特别询问了元素属性中的内联 JavaScript,例如“onfoo”事件处理程序。据我所知,无论您要求 jQuery 进行何种 DOM 处理(当然除了显式影响属性之外),这些都是绝对安全的。我上面写的是关于嵌入式 <script> HTML 标记中的标记。

关于javascript - .load() 在检索内容时是否保留内联 JavaScript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5245803/

相关文章:

jquery - 将页面上选定的文本插入文本区域(jQuery)

ruby-on-rails - Rails form_for collection_select 忽略 select_tag 接受的远程 ajax 调用

javascript - ajax 请求在 OS X Paw 应用程序和 cURL 中工作,但不能像 Javascript/jQuery 那样工作

javascript - 如何使用 ES5 扩展 ES6 类?

javascript - 使用 flatMap 链接可观察量

javascript - 使用循环向我的 Leaflet map 添加图层

javascript - 如何使用 for 循环来检查井字游戏中的获胜者

带有文本的 JQuery fadeTo

javascript - 单击特定按钮时如何显示特定值

javascript - 如何实现不变性