相关疑难解决方法(0)

可以使用innerHTML插入脚本吗?

我尝试使用innerHTMLa 将一些脚本加载到页面中<div>.看起来脚本加载到DOM中,但它永远不会被执行(至少在Firefox和Chrome中).有没有办法让脚本在插入时执行innerHTML

示例代码:

<!DOCTYPE html>
<html>
  <body onload="document.getElementById('loader').innerHTML = '<script>alert(\'hi\')<\/script>'">
    Shouldn't an alert saying 'hi' appear?
    <div id="loader"></div>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript dom innerhtml

194
推荐指数
12
解决办法
18万
查看次数

脚本标签创建与div的innerHTML不起作用

这里是js代码

var wrap = document.createElement("div");
wrap.innerHTML = '<script type="text/javascript" src="'+scriptUrl+'"></script>';
var wrapscript = wrap.childNodes[0];
document.body.appendChild(wrapscript)
Run Code Online (Sandbox Code Playgroud)

正文确实插入了脚本元素,但js资源没有加载,甚至没有http请求...

谁能告诉我为什么~~

问题出在Zeptojs的$方法上

$('<script type="text/javascript" src="'+scriptUrl+'"></script>').appendTo($("bdoy"))
Run Code Online (Sandbox Code Playgroud)

它像上面的代码一样工作,并导致错误

javascript

7
推荐指数
2
解决办法
1万
查看次数

通过 XMLHttpRequest 加载时,Javascript 不执行,但使用 jQuery.load 加载时执行

在将脚本转换为不需要 jQuery 时,我发现如果我通过 XMLHttpRequest 加载我的内容(带有 html 和 javascript 的部分 html 页面),部分页面中的 javascript 将不起作用。但如果我使用 jQuery.load 加载部分,它确实可以工作。

我尝试深入研究 jQuery 的加载函数,看看它是否做了什么特别的事情,但没有什么让我惊讶的。这几天我一直在用头撞墙寻找答案,但毫无结果。

我做错了什么/如何让它像使用 jQuery.load 加载时一样工作?

编辑

我通过从片段中的 html 中分离出我的 javascript 并使用此处建议的技术加载 javascript 来使 XMLHttpRequest 方法正常工作: https: //stackoverflow.com/a/11695198/362958。然而,这仍然没有解释为什么 jQuery.load 可以工作。jQuery 是否最终解析 HTML 并对它在加载的内容中找到的任何脚本执行相同的操作?

我已经使用以下代码设置了一个plunker(https://plnkr.co/edit/wE9RuULx251C5ARnUbCh )来演示该问题。注意:一旦您使用 jQuery 加载片段,它将继续工作,并且您必须重新启动 plunk,XMLHttpRequest 方法才能再次失败。

索引.html:

<!DOCTYPE html>
<html>

  <head>
    <script data-require="jquery@*" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
    <link rel="stylesheet" href="style.css" />
    <script src="script.js"></script>
  </head>

  <body>

  <h3>Buttons</h3>  
    <div>
      <input type="button" value="Load with XMLHttpRequest" onclick="loadXMLDoc('ajaxContentDiv', 'fragmentToLoad.html');">  (Links do not work if loaded …
Run Code Online (Sandbox Code Playgroud)

html javascript ajax jquery xmlhttprequest

5
推荐指数
1
解决办法
6629
查看次数

标签 统计

javascript ×3

html ×2

ajax ×1

dom ×1

innerhtml ×1

jquery ×1

xmlhttprequest ×1