我如何运行脚本到从jquery加载特定标记加载的另一个页面

时间:2016-02-01 17:20:38

标签: javascript jquery

装载机

$( "#b" ).load( "thepage.html #target" );

<div id="b"></div>

thepage.html

<div id="target">
<script>
alert('the page');
</script>
hi world
</div>

我需要从jquery函数加载'thepage.html'时显示警告

1 个答案:

答案 0 :(得分:0)

如果你有这个:

$( "#b" ).load( "thepage.html #target" );

<div id="b"></div>

你想要JS执行,你需要像#target那样:

<div id="target">
  <script>
  alert('the page');
  </script>
  hi world
</div>

<击>

修改

来自JQuery API:

  

如果使用附加到URL的选择器表达式调用.load(),   但是,在更新DOM之前删除了脚本,   因此不会被执行。两种情况的例子如下所示:

     

这里,作为文档一部分加载到#a的任何JavaScript都将   成功执行。

$( "#a" ).load( "article.html" );
     

但是,在以下情况中,文档中的脚本块为   加载到#b中被删除而不执行:

$( "#b" ).load( "article.html #target" );

加载完成后,您必须执行JS。由于安全问题,您无法从页面加载脚本。

可以试试这个:

<div id="target">
  Hello World.
  <div style="display: none;" id="alertMessage">The Page</div>
</div>

然后执行如下:

$("#b").load("thepage.html #target", function(r, s, x){
    if(s != "error"){
       alert($("#alertMessage").text());
    }
});