我需要通过jsonp like方法获取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运行时插入代码?
答案 0 :(得分:1)
最直接的方法是提取所有JavaScript和eval
。
您可以使用以下正则表达式提取JavaScript:
var match = html.match(new RegExp("<script[^>]*>(.+)</script>"));
console.log(match);
这远非执行JavaScript的最佳方式,非常容易出错且可能不安全。我强烈建议反对。
答案 1 :(得分:0)
您应该使用像LAB,yep / nope或Frame.js这样的脚本加载器。浏览器具有内置限制,脚本加载是在页面上包含脚本的最佳实践。
你也必须逃避单引号。
console.log(\'I run!\');