用dom操作script元素,移除后页面并不会因此而改变,原因是浏览器处理script标签使用块加载的方法,一旦解析完成就写入内存中了。
解决办法是获取当前页面的html,用正则处理掉script标签,然后在打开一个新页面去解析这些html。
参考代码如下:
var ohtml=document.getElementsByTagName('html')[0].innerHTML; var nhtml=ohtml.replace(/]+xx.js.+?<\/script>/,"").replace(/]+yy.+?<\/script>/,""); var testwin= open("", "testwin",""); testwin.document.open(); testwin.document.write(nhtml);