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

标签 javascript html variables createelement

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

他们希望能够使用在变量中定义的 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();

关于javascript - 添加包含在变量中的 JavaScript 作为脚本元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989228/

相关文章:

javascript - Angularjs:如何组织一个大项目代码?

javascript - 你什么时候会在对象上使用 ES6 映射?

php - 检查用户名可用性问题

html - 固定标题中的图像在窗口调整大小时移动

javascript - 将多个变量从 JS 发送到 PHP

javascript - Ext js 4.2 销毁组件

javascript - 错误获取DIV ID

html - 在响应式 div 框中将矢量图像居中?

visual-c++ - C++ 在 native 代码中声明托管变量

windows - 如何从 forfiles 变量中删除引号