【问题标题】:JQuery `.load()` function not executing javascript which is in loading pageJQuery`.load()`函数不执行加载页面中的javascript
【发布时间】:2012-10-02 14:47:10
【问题描述】:

我要做的是加载一个外部 html 文件并让嵌入的 Javascript 与我在Loading_Page.html 中的 html 代码一起执行。

我尝试使用的代码是这样的:

$("#myBtn").click(function() {
  $("#myDiv").load("Loading_Page.html");
});

Loading_Page.html 看起来像这样(现在很简单,但会扩展一次/如果我能正常工作)。它同时具有 html 和 javascript,因此我需要将 Html 页面与 javascript 一起获取。

<html> 
<head>
  <title>Tracking HTML File</title>
  <script language="javascript" type="text/javascript">
    alert("outside the jQuery ready");
  </script>
</head>

<body>

  <div id="first_division"><img src="someimage.jpg" alt="image" /></div>
  <div id="second_division"><p>some text</p></div>
</body>

</html>

但是 Loading_Page.html 页面中的 javascript 没有与 Loading_Page 中的 html 代码一起执行关于浏览器为什么忽略 Loading_Page.html 文件中的 Javascript 有什么想法吗?

提前感谢您的帮助!

【问题讨论】:

    标签: jquery html ajax


    【解决方案1】:

    jQuery 加载只会在响应中排除该脚本标签,然后再将其插入到 div 中。

    请参阅this 问题。同样的问题也发生在那里。

    【讨论】:

    • 是的..我已经解决了这个问题..你能说一下该怎么做,以解决这个问题
    • 代替加载 - 您可以尝试使用 $.ajax 并在成功处理程序中 - 使用 .html() 将返回的 HTML 插入到 $("#myDiv")
    • 类似这样的东西:$.ajax({ url: 'Loading_Page.html', success: function(data) { $("#myDiv").html(data); } });
    • 那么我可以使用像 $.getScript("javascript.js") 这样的东西作为回调函数来加载除了 $.ajax 来获取 javascript 以及加载 html 页面...??
    • 嗯。是的。但实际上——我认为你不应该那样做。这个$("#myDiv").html(data) 或至少$("#myDiv")[0].innerHTML = data; 应该执行JS(在$.ajax 成功处理程序中)。在那种情况下,不可能这样做,因为 OP 试图只接受部分响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多