[英]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.