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

时间:2011-03-09 12:30:48

标签: javascript jquery ajax

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

1 个答案:

答案 0 :(得分:3)

当您在该表单中使用“.load()”时,它会丢弃脚本标记,并且不会执行脚本 - 将选择器附加到URL上。

有关详细信息,请参阅this jQuery bug report

当您使用“.load()”与 一个网址

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

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

编辑 - 通过我的早晨咖啡因阴霾重新阅读您的问题我看到您在元素属性中专门询问内联JavaScript,例如“onfoo”事件处理程序。那些是非常安全的,据我所知,无论你要求jQuery做什么样的DOM争论(除了明确影响当然的属性)。我上面写的内容与HTML标记中的嵌入式<script>标记有关。