1

我正在尝试通过 jQuery 的 .load() 函数在远程加载(注入)的 HTML 文件中引用一些 javascript 文件。我试图在加载的 HTML 文件中使用的 javascript 文件已经包含在加载的 HTML 的父 HTML 页面中。

最初,我认为在加载的 HTML 中引用这些文件会很好,因为它包含在页面中,但它似乎不起作用。

谁能告诉我如何在注入的 HTML 文件中使用 javascript?

4

4 回答 4

1

如果我理解正确,听起来您需要使用getScript()- 这加载并执行使用 HTTP GET 请求的本地 JavaScript 文件。

$.getScript( url, [callback] ) 
于 2009-06-03T22:12:34.070 回答
0

我相信你正在寻找的是 .live()

.live() 允许您“将处理程序附加到与当前选择器匹配的所有元素的事件,现在或将来。”

例如:

$(".clickme").click(function(){
  $(this).fadeOut();
}

此代码不适用于已使用 .load() 或 .get() 注入页面的任何元素

但如果你这样做:

$(".clickme").live('click', function(){
  $(this).fadeOut();
}

...它甚至可以在通过 javascript 注入页面布局的元素上工作。

更多信息在jQuery AP

于 2010-07-15T23:19:26.677 回答
0

如果脚本元素是您加载的 html 的一部分,那么您只需将其附加到正文即可。

例子:

$.ajax({
    //...
    //...
    success: function(response) {
        // assuming response is a full HTML page
        var r = $(response);
        // append your content
        $("#someContainer").append($("#someContent", r));
        // append the scripts
        $("body").append($("script", r));
    }
    //...
    //...
});

当然你可以使用你自己的选择器,这只是一个例子。让我知道这对你有什么影响。

于 2009-06-04T00:01:23.540 回答
0
  1. 如果 test1.htm 包含:

    $(document).ready(function() { $('.main').load('test2.htm', function() { $('.result').text('页面已检索'); } ); });

  2. 而test2.html包含:<script type="text/javascript" src="exscript.js"></script>

在文档的头部。

  1. exscript.js 包含:

    警报(“嗨”);

如果您加载 test1.htm,您会收到通知。再见!:)

于 2009-06-07T21:50:01.500 回答