在DOM中插入带有javascript代码的脚本标记的字符串



我有一个字符串,其中包含htmlscript标记,该标记包含一些javascript代码。我通过websocket从另一个服务器接收到该代码。

该字符串包含一些javascript代码,这些代码对DOM执行一些更改。所以我想评估这个字符串。我知道eval()函数评估用字符串表示的JavaScript代码。但当我评估这个字符串时,我会得到一些转义错误。

有没有任何方法可以将带有javascript代码的字符串附加到DOM中,并在将代码插入DOM时对其进行评估。

所以考虑我有一个变量chain,类似于下面的

let chain = "<script>console.log('test')</script>";

我想将作为html脚本标记表示的字符串附加到DOM中,并希望在将其插入DOM的同时对其进行评估。在那之后,我希望有一些登录到浏览器控制台。

我想这就是您想要的。

注意:我不得不将字符串中的结束标记从</script>更改为</script>,以使代码片段在SO:上工作

let chain = "<script>console.log('Test')</script>";
let code = chain.replace('<script>','').replace('</script>','')
let script = document.createElement('script')
script.onload = eval(code)
document.body.appendChild(script);

如果您只是想对接收到的字符串执行eval,则需要剥离标签并将eval作为新字符串。

下面的代码片段应该可以满足您的基本需求。请记住,不推荐使用eval

let chain = "<script>console.log('test')</script>";
let code = chain.replaceAll(/</?[^<>]*>/g, "");
console.log(chain, code);
eval(code);

相关内容

  • 没有找到相关文章

最新更新