你知道为什么下面这段代码没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
你知道为什么下面这段代码没有将脚本元素添加到DOM中吗?
var code = "<script></script>";
$("#someElement").append(code);
当前回答
我试过这个,效果很好。只需将<符号替换为\x3C。
// With Variable
var code = "\x3Cscript>SomeCode\x3C/script>";
$("#someElement").append(code);
or
//Without Variable
$("#someElement").append("\x3Cscript>SomeCode\x3C/script>");
您可以在这里测试代码。
其他回答
将脚本追加到正文:
$(document).ready(function() {
$("<script>", { src : "bootstrap.min.js", type : "text/javascript" }).appendTo("body");
});
我想做同样的事情,但附加一个脚本标签在其他框架!
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);
如果想要追加代码,另一种方法是使用文档。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 );
可以使用jQuery函数getScript动态加载JavaScript文件
$.getScript('http://www.whatever.com/shareprice/shareprice.js', function() { Display.sharePrice(); });
现在外部脚本将被调用,如果不能加载它,它将优雅地降级。
你说“不工作”是什么意思?
jQuery检测到您正在尝试创建一个SCRIPT元素,并将自动在全局上下文中运行元素的内容。你是说这对你没用吗?-
$('#someElement').append('<script>alert("WORKING");</script>');
编辑:如果你在运行命令后没有在DOM中看到SCRIPT元素(例如在Firebug中),这是因为jQuery,就像我说的,将运行代码,然后将删除SCRIPT元素-我相信SCRIPT元素总是附加到主体…但无论如何,在这种情况下,位置对代码执行完全没有影响。