Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
加载内容前替换或删除另一个的javascript标记_Javascript_Regex - Fatal编程技术网

加载内容前替换或删除另一个的javascript标记

加载内容前替换或删除另一个的javascript标记,javascript,regex,Javascript,Regex,在加载内容html之前,我需要用另一个脚本标记替换特定的脚本标记。我的意思是,我不想加载这个javascript,因为它是广告 替换此 用于此 否则,请移除标签 这是我的代码,但这会删除所有脚本标记,我需要特定的标记(前面提到过) 函数剥离脚本{ var div=document.createElement('div'); div.innerHTML=s; var scripts=div.getElementsByTagName(“脚本”); var i=scripts.length; 而(我-

在加载内容html之前,我需要用另一个脚本标记替换特定的脚本标记
。我的意思是,我不想加载这个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值。我的陈述是,确定我的正确价值;我不是指任何硬编码。嗯,事实上,两人都在某条船上航行!!干杯!!:)