gpt4 book ai didi

javascript - getScript 或 eval 在特定位置?

转载 作者:行者123 更新时间:2023-11-29 20:20:29 25 4
gpt4 key购买 nike

我想知道是否可以使用 eval(或 jQuery 的 getScript 的某些变体)将外部 javascript 定位在 DOM 末尾或头部以外的位置。我试过:

var head = document.getElementById("fig"); 

代替

var head = document.getElementsById("head")[0];

var script = document.createElement("script");
script.text = $(".code").val();
head.appendChild(script);

但我似乎无法让它正常工作。 (代码确实有效,但 Firebug 显示代码在 #fig 和页面末尾,就在 </body> 标记之前。

基本上,我正在使用的 JavaScript 工具包根据脚本标记所在的位置呈现内容,并且我正在尝试根据用户输入动态修改 javascript(因此我不能真正引用 new 外部 JS 文件 - 我宁愿运行一个 eval,这并不理想)。

我想最坏的情况是使用 PHP 或其他东西将用户输入保存到一个"new"文件中,然后使用 getScript 指向那个新的 PHP 文件,但这看起来非常 hacky。

再次感谢您!

最佳答案

您提到的“JavaScript 工具包”是否使用 document.writedocument.writeln 将输出插入页面?如果是这样,您可以覆盖该函数以将脚本输出附加到正确的位置:

document.write = function(s) {
$('#fig').append(s);
};

document.writeln = function(s) {
$('#fig').append(s + '\n');
};

然后使用$.getScript加载并执行脚本。

编辑:一种更健壮的方法,具体取决于代码的添加方式:

var output = '';

document.write = function(s) {
output += s;
};

document.writeln = function(s) {
output += s + '\n';
};

$.getScript('URL of script here', function() {
$('#fig').append(output);
});

关于javascript - getScript 或 eval 在特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231948/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com