我想知道 eval (或 jQuery 的 getScript 的某些变体)是否可以用于将外部 javascript 定位在 DOM 末尾或头部以外的位置。我试过了:
var head = document.getElementById("fig");
代替
var head = document.getElementsById("head")[0];
with
var script = document.createElement("script");
script.text = $(".code").val();
head.appendChild(script);
但无论如何我似乎都无法让它发挥作用。 (该代码确实有效,但 Firebug 显示代码在#fig
并在页面的末尾,就在</body>
tag.
基本上,我使用的 JavaScript 工具包根据脚本标记所在的位置呈现内容,并且我试图根据用户输入动态修改 JavaScript(因此我无法真正引用new外部 JS 文件 - 我宁愿运行 eval,这并不理想)。
我想最坏的情况是使用 PHP 或其他东西将用户输入保存到“新”文件中,并使用 getScript 指向该新的 PHP 文件,但这似乎非常hacky。
再一次感谢你!
您提到的“JavaScript工具包”是否使用document.write
or document.writeln
将输出插入页面?如果是这样,您可以覆盖该函数以将脚本输出附加到正确的位置:
document.write = function(s) {
$('#fig').append(s);
};
document.writeln = function(s) {
$('#fig').append(s + '\n');
};
然后使用加载并执行脚本$.getScript
.
Edit:一种更稳健的方法,具体取决于代码的添加方式:
var output = '';
document.write = function(s) {
output += s;
};
document.writeln = function(s) {
output += s + '\n';
};
$.getScript('URL of script here', function() {
$('#fig').append(output);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)