繁体   English   中英

在字符串Javascript中运行代码

[英]Run the code inside of string Javascript

我在Javascript中有一个变量(字符串),例如,您在其中具有以下文本:

"document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';"

我使用Ajax和PHP获得了此变量,但这不是我(可能非常简单)的问题所在。

假设我想将此代码用作代码本身,而不是字符串,因此,我希望执行其中的代码,而不是将其作为字符串。

我该怎么做?

提前致谢

不要这样 这是一场安全噩梦

如果确实必须执行此操作,请使用eval()如下所示:

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';");

考虑到您的示例和解释,我怀疑您正在检索一个内容完全由javascript组成的url。 您遇到的问题是,用于检索该url的方法为您提供了一个包含该javascript的字符串。 我相信它是供您使用<script>元素加载该代码的。 要动态地这样做:

var script = document.createElement("script");
script.src = "url/to/your/javascript";
document.getElementByTagName('body')[0].appendChild(script);

您可以使用eval()方法。 但是,如果不需要,请不要这样做。 而且,如果必须这样做 ,请确保您知道自己在做什么。

eval("document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';")

这是使用eval()的替代方法:

var stringContainingJavascript = "document.getElementById('tekst').innerHTML = 'Probeer opnieuw!';"

var body = document.getElementsByTagName('body')[0];

var paragraph = document.createElement('p');
paragraph.id = 'tekst';
body.appendChild(paragraph);

var script = document.createElement('script');
var scriptText = document.createTextNode(stringContainingJavascript);
script.appendChild(scriptText);
body.appendChild(script);

上面的脚本在将<p>附加到文档的<body>之前,创建一个<p>元素并将其赋予id="tekst"

相同的脚本然后创建<script>元素和附加字符串到它,追加前<script><body>文档。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM