查找并替换Javascript,以更改链接,是否可能?

查找并替换Javascript,以更改链接,是否可能?,javascript,replace,hyperlink,find,Javascript,Replace,Hyperlink,Find,好的,这是我的问题:我有一个谷歌分析代码,看起来像这样: <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-xxxxxxx-x']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.src = ('https:' =

好的,这是我的问题:我有一个谷歌分析代码,看起来像这样:

<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
_gaq.push(['_trackPageview']);
(function() {
    var ga = document.createElement('script');
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0];
    s.parentNode.insertBefore(ga, s);
})();
</script>
这一行:

ga.src = ('https:' == document.location.protocol ? 'https://' : 'http:/') + '.google-analytics.com/ga.js'
ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'
但我不能编辑原始代码,我只能添加到它。有没有一种方法可以创建一个代码,以某种方式查找并替换这一行

请帮忙


Grey

将修改后的脚本放在当前脚本之上,然后抑制现有脚本,怎么样?像这样:

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>
<script type='application/x-suppress'>
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>

var _gaq=_gaq | |[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://':'http://')+'stats.g.doubleclick.net/dc.js';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();
var _gaq=_gaq | |[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();
这个怎么办:

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>
<script type="text/javascript">
    document.getElementsByTagName('script')[0].remove();
    document.getElementsByTagName('script')[0].remove();
    var _gaq = [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>

var _gaq=_gaq | |[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();
document.getElementsByTagName('script')[0].remove();
document.getElementsByTagName('script')[0].remove();
Varu gaq=[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://':'http://')+'stats.g.doubleclick.net/dc.js'
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();

另一个不需要注意脚本索引的选项如下(请注意,新脚本有一个id):


var _gaq=_gaq | |[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www“)+”.google analytics.com/ga.js';
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();
var scripts=document.getElementsByTagName('script');
var scriptCount=scripts.length;
var regex=new RegExp('.google analytics.com/ga.js');
对于(var i=scriptCount-1;i>=0;i--){
var script=脚本[i];
if(script.id!='scriptFixer'&&(script.innerHTML.match(regex)!==null | | script.src.match(regex)!==null)){
script.remove();
}
}
Varu gaq=[];
_gaq.push(['''u setAccount','UA-xxxxxxx-x']);
_gaq.push([''u trackPageview']);
(功能(){
var ga=document.createElement('script');
ga.src=('https:'==document.location.protocol?'https://':'http://')+'stats.g.doubleclick.net/dc.js'
var s=document.getElementsByTagName('script')[0];
s、 parentNode.insertBefore(ga,s);
})();

请注意,
java
javascript
是两件完全不同的事情。你是想在浏览器中增加一个脚本,还是有权访问服务器部件?为什么你可以添加但不能编辑代码?我很同情做这件事的人
'https:'==document.location.protocol?“https://':'http://'
而不是此
document.location.protocol+'/'
hmm。为什么不能修改脚本?即使您尝试替换src,该脚本也会启动。然后只需“更改”src,双击不会突然触发。我喜欢这个想法,但不幸的是,我只能在代码之后添加。好的,我有另一个想法。我会发布它。如果你不需要这个_gaq变量,只需删除自调用匿名函数上方的三行。所以抑制应用程序,我理解它会抑制,但它只抑制该脚本的函数吗?如果可以的话,我可以删除我正在添加的代码的变量,因为它们与已经存在的变量相同,并且只替换函数吗?这就是你说的吗?它会抑制整个脚本,包括函数和变量。因此,如果仍然需要该变量,请将其保留在脚本中。如果不是,那么这个函数就没有真正的理由了。你可以直接插入脚本:
(后面跟着
)Mike你太棒了,让我们谈谈这个,因为我是初学者,你能解释一下这个概念吗?看起来有一个命令可以删除以前的脚本,然后替换它?哦,还有,这是否足够具体,可以只删除该脚本,还是删除其他脚本?当然,该命令会获取所有脚本标记(一个数组),然后获取数组中的第一个元素并将其删除。由于您提供的脚本将google analytics脚本置于第0个脚本之前,因此第一次调用将删除该google analytics脚本。第二个调用假定您提供的脚本是页面上的第一个脚本(现在又是第0个),然后删除该脚本。可能不是这样……它将删除您提供的索引中的任何脚本。如果在加载页面时打开浏览器中的控制台并运行命令文档。getElementsByTagName('script'),您应该会看到一个包含页面上所有脚本的数组。嘿,Mike,我向ch
<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>
<script id="scriptFixer" type="text/javascript">
    var scripts = document.getElementsByTagName('script');
    var scriptCount = scripts.length;
    var regex = new RegExp('.google-analytics.com/ga.js');
    for (var i = scriptCount - 1; i >= 0; i--) {
        var script = scripts[i];
        if (script.id !== 'scriptFixer' && (script.innerHTML.match(regex) !== null || script.src.match(regex) !== null)) {
            script.remove();
        }
    }
    var _gaq = [];
    _gaq.push(['_setAccount', 'UA-xxxxxxx-x']);
    _gaq.push(['_trackPageview']);
    (function() {
        var ga = document.createElement('script');
        ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js'
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
</script>