加载内容前替换或删除另一个的javascript标记
在加载内容html之前,我需要用另一个脚本标记替换特定的脚本标记加载内容前替换或删除另一个的javascript标记,javascript,regex,Javascript,Regex,在加载内容html之前,我需要用另一个脚本标记替换特定的脚本标记。我的意思是,我不想加载这个javascript,因为它是广告 替换此 用于此 否则,请移除标签 这是我的代码,但这会删除所有脚本标记,我需要特定的标记(前面提到过) 函数剥离脚本{ var div=document.createElement('div'); div.innerHTML=s; var scripts=div.getElementsByTagName(“脚本”); var i=scripts.length; 而(我-
。我的意思是,我不想加载这个javascript,因为它是广告
替换此
用于此
否则,请移除标签
这是我的代码,但这会删除所有脚本标记,我需要特定的标记(前面提到过)
函数剥离脚本{
var div=document.createElement('div');
div.innerHTML=s;
var scripts=div.getElementsByTagName(“脚本”);
var i=scripts.length;
而(我--){
脚本[i].parentNode.removeChild(脚本[i]);
}
返回div.innerHTML;
}
警觉的(
stripScripts('alert(\'foo\');')
);
提前感谢您知道多少url 如果您知道所有这些,并且不会改变:
var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
if (scripts[i].src === "http://site.net/c/banner_s?tenant=AD&selection=5986&size=728x90&skin=bottom_middle&di=1") {
srcipts[i].src = newSrc; // Your source here
break;
}
}
var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
if (scripts[i].src.indexOf("http://site.net/c/banner_s?...") === 0) {
srcipts[i].src = newSrc; // Your source here
break;
}
}
如果您知道其中一些不会改变:
var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
if (scripts[i].src === "http://site.net/c/banner_s?tenant=AD&selection=5986&size=728x90&skin=bottom_middle&di=1") {
srcipts[i].src = newSrc; // Your source here
break;
}
}
var scripts = document.getElementsByTagName('script');
var i = scripts.length;
while (i--) {
if (scripts[i].src.indexOf("http://site.net/c/banner_s?...") === 0) {
srcipts[i].src = newSrc; // Your source here
break;
}
}
如果整个url可能会更改,您将需要寻找不同的解决方案(ID、页面上的位置等)。如果这不是服务器端javascript,您就是在浪费时间。一旦脚本元素出现在页面中,删除它是没有意义的。脚本一旦加载,就不能“卸载”。除了导航到一个新的URL,你所能做的一切都不会改变这一点 替换脚本元素的src同样毫无意义,您也可以只加载一个新元素。替换src不会卸载脚本内容(参见上文),它只是删除元素
如果你想在页面中加载不同的脚本,你必须在服务器上加载。我编辑了我的问题如果你想删除单个脚本标记,然后删除while循环,并确定I的正确值(脚本在html中的位置),以便删除我认为他不知道I的正确值的内容,这就是他问这个问题的原因。@mattbyant:据我所知,他关心的是所有脚本标记被删除,而不是特定的脚本标记。我可能是错的,即使我不推荐硬编码的I值。我的陈述是,确定我的正确价值;我不是指任何硬编码。嗯,事实上,两人都在某条船上航行!!干杯!!:)