我正在尝试从html主体中删除脚本及其内容,这是我到现在为止所提出的
just_text = just_text.replace(/<\s*script[^>]*>(<\s*\/script[^>]*>|$)/ig, '');
它无法正常工作,我仍然可以获得内容。
你能帮帮我吗?
谢谢
答案 0 :(得分:6)
这些问题的答案总是一样的:不要使用正则表达式。相反,如果需要,解析HTML,修改DOM并将其序列化为HTML。
示例:
var container = document.createElement('div');
container.innerHTML = just_text;
// find and remove `script` elements
var scripts = container.getElementsByTagName('script');
for (var i = scripts.length; i--; ) {
scripts[i].parentNode.removeChild(scripts[i]);
}
just_text = container.innerHTML;
如果你想从页面本身删除script
标签,它基本上是相同的:
var scripts = document.body.getElementsByTagName('script');
for (var i = scripts.length; i--; ) {
scripts[i].parentNode.removeChild(scripts[i]);
}