【问题标题】:jquery .load with script in itjquery .load 里面有脚本
【发布时间】:2014-02-12 17:12:01
【问题描述】:

我需要将一段内容加载到我的 div 中,我需要执行我在远程 div 中的脚本,例如我有

<div id="thisIsRemoteContent">
<script src="blabla.js"></script>
</div>

在remote-content.html中

现在我需要将它与脚本一起加载到我的页面

$('.mydiv').load("remote-content.html #thisIsRemoteContent");

在 jquery API 文档中写到,如果我加载了一段内容,那么脚本将不会被执行。

当使用没有后缀选择器的 URL 调用 .load() 时 表达式,内容在脚本被传递之前传递给 .html() 删除。这会在脚本块被丢弃之前执行它们。如果 .load() 是在 URL 附加一个选择器表达式的情况下调用的, 但是,在更新 DOM 之前,脚本会被删除, 因此不会被执行。

但是,如何使用脚本加载它?

【问题讨论】:

标签: jquery


【解决方案1】:

你不能打2个电话吗?

    $('.mydiv').load("remote-content.html");
    $.getScript('blabla.js');

您可以使用脚本名称进行操作,以便远程内容知道其名称,然后将其放入 remote-content.html 内的某个属性中,例如:

<div>my remote content</div>
<span scriptname="blabla.js"></span>

那么:

    $('.mydiv').load("remote-content.html");
    $.getScript($('span[scriptname]').attr('scriptname'));

【讨论】:

  • 谢谢你的回答,我不能用脚本做任何事情,它来自管理面板,用户只是把脚本像这样'
  • 那时我不知道。这是一个大问题,所有 XSS 保护使我们的工作变得更加困难;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-12
相关资源
最近更新 更多