你知道为什么下面这段代码没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
你知道为什么下面这段代码没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
当前回答
可以使用jQuery函数getScript动态加载JavaScript文件
$.getScript('http://www.whatever.com/shareprice/shareprice.js', function() { Display.sharePrice(); });
现在外部脚本将被调用,如果不能加载它,它将优雅地降级。
其他回答
只需通过jQuery解析来创建一个元素。
<div id="someElement"></div>
<script>
var code = "<script>alert(123);<\/script>";
$("#someElement").append($(code));
</script>
工作示例:https://plnkr.co/edit/V2FE28Q2eBrJoJ6PUEBz
如果想要追加代码,另一种方法是使用文档。createElement方法,但使用。innerhtml而不是。src。
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.innerHTML = 'alert("Hey there... you just appended this script to the body");';
$("body").append( script );
你的脚本正在执行,你只是不能使用文档。从它写。使用警报来测试它,避免使用document.write。js文件中的语句与document。Write将不执行,函数的其余部分将执行。
我想做同样的事情,但附加一个脚本标签在其他框架!
var url = 'library.js';
var script = window.parent.frames[1].document.createElement('script' );
script.type = 'text/javascript';
script.src = url;
$('head',window.parent.frames[1].document).append(script);
我写了一个npm包,它可以让你在执行脚本时将HTML字符串(包括脚本标签)附加到容器中
例子:
import appendHtml from 'appendhtml';
const html = '<p>Hello</p><script src="some_js_file.js"></script>';
const container = document.getElementById('some-div');
await appendHtml(html, container);
// appendHtml returns a Promise, some_js_file.js is now loaded and executed (note the await)
在这里找到它:https://www.npmjs.com/package/appendhtml