添加包含在变量中的 JavaScript 作为脚本元素

Adding JavaScript contained in a variable as a script element

当权者要求我对此进行调查,尽管我认为这是不可能的,但我想在返回给他们之前先确定一下。别问我为什么要这个哈哈

他们希望能够使用在变量中定义的 JavaScript。让我解释一下...

假设您有这个变量:

var testvar = "function dan() { alert('hello world'); }";

他们希望能够调用 dan() 并在网页中弹出警报。像这样的东西似乎不能用(当然)。

var importjs = document.createElement('script');
importjs.src = testvar;
document.getElementsByTagName("head")[0].appendChild(importjs);

我可以用来解释为什么它不可行的任何想法或行话。我认为这本质上是一个跨源问题。我们的解决方案要求用户安装使用网络套接字的软件。本软件对JS进行文件GET,然后我们想在浏览器中使用JS。

您应该将脚本元素的 innerHTML 设置为您的字符串。 script 元素的 src 只能用于加载外部脚本。

var testvar = "function dan() { alert('hello world'); }";
var importjs = document.createElement('script');
importjs.innerHTML = testvar;
document.getElementsByTagName("head")[0].appendChild(importjs);
dan();