1

我需要通过类似 jsonp 的方法获取 html 代码,并将其显示在 div 元素上。这适用于简单的 html,如图像、文本等。但是现在代码可以包含 JavaScript 标记,并且需要将其插入到 div 中,但是 javascript 不运行,我用一个例子来恢复它:

var div = document.getElementById('mydiv');

div.innerHTML = '<scipt type="text/javascript"> console.log('I run!'); </script>';

这不起作用,我也探测:

var otherdiv = document.createElement('div');

otherdiv.innerHTML = '<scipt type="text/javascript"> console.log('I run!'); </script>';

div.appendChild(otherdiv);

但也不行。

如何将代码插入 JavaScript 运行的地方?

4

2 回答 2

1

最直接的方法是提取所有的 JavaScript 和eval它。

您可以使用正则表达式提取 JavaScript,例如:

var match = html.match(new RegExp("<script[^>]*>(.+)</script>"));
console.log(match);

这远不是执行 JavaScript 的最佳方式,非常容易出错并且可能不安全。我强烈建议不要这样做。

于 2012-04-27T18:45:15.220 回答
0

您应该使用像 LAB、yep/nope 或Frame.js这样的脚本加载器。浏览器有内置限制,脚本加载是在页面上包含脚本的最佳实践。

您还必须转义单引号。

console.log(\'I run!\');
于 2012-04-27T18:41:37.307 回答