登录到Google后,Google搜索结果将被重定向(用于跟踪等目的)。这很烦人,因为不访问网站就很难复制/粘贴URL。如果没有重定向,我将右键单击搜索结果中的链接,然后选择“复制链接地址”。现在,它由监视右键单击的某些Google JavaScript代码更改。
如何在Chrome上禁用此功能?我认为它曾经有一个Chrome扩展程序,但似乎不再起作用。
登录到Google后,Google搜索结果将被重定向(用于跟踪等目的)。这很烦人,因为不访问网站就很难复制/粘贴URL。如果没有重定向,我将右键单击搜索结果中的链接,然后选择“复制链接地址”。现在,它由监视右键单击的某些Google JavaScript代码更改。
如何在Chrome上禁用此功能?我认为它曾经有一个Chrome扩展程序,但似乎不再起作用。
Answers:
现在,当我知道您要什么时,我写了一个小脚本,该脚本onmousedown
从链接中删除属性。
这里是:
// ==UserScript==
// @name Delete onmousedown
// @namespace google
// @include http://www.google.*/*
// ==/UserScript==
var runOnce = function(){
var items = document.querySelectorAll('li.g h3.r a');
for(var i = 0, len = items.length; i< len; i++){
items[i].removeAttribute('onmousedown');
}
}
document.body.appendChild(document.createElement("script")).innerHTML = "("+runOnce+")()";
将其另存为以.user.js结尾的文件,并将其放在Google Chrome上,让我知道是否有帮助。
PS。英语不是我的口头语言,对您造成的误会深感抱歉。
编辑:我添加了额外的逻辑,因此它应该与Google即搜即得一起使用。告诉我它是否适合您。
编辑:我回滚到“没有”谷歌即时支持的版本。
尝试使用“非直接” Chrome扩展程序。
它将从Google搜索结果中删除此跟踪和重定向。支持通过HTTP和HTTPS使用Google。
如果您使用的是Firefox,那么很幸运,因为以下答案适用于您。如果您使用的是Chrome,那么您就不太幸运了,请参阅此答案的底部。
一旦DOM加载完毕, Greasemonkey就会触发用户脚本,因此您无需实现“ DOM ready”侦听器。
另外,您使用的是Firefox,因此可以使用一些现代的糖果:for...of
,let
。
这是生成的Greasemonkey脚本:
// ==UserScript==
// @name Remove Google redirects
// @namespace google
// @description Remove redirects from Google Search result links.
// @include https://www.google.*/*
// @version 1
// @grant none
// ==/UserScript==
for (let element of document.querySelectorAll('#res .r > a')) {
element.removeAttribute('onmousedown');
}
由于let
没有本地声明,因此您不需要将以上代码包含在IIFE中。
对于不幸的Chrome(Tampermonkey)用户:
即使执行脚本,在执行脚本时也找不到链接,document.readyState === 'complete'
结果……您必须使用计时器实现一些循环。
因此,您最终得到:
// ==UserScript==
// @name Remove Google redirects
// @namespace google
// @description Remove redirects from Google Search result links.
// @include https://www.google.*/*
// @version 1
// @grant none
// ==/UserScript==
(function removeGoogleRedirects() {
var links = document.querySelectorAll('#res .r > a');
if (links.length === 0) {
setTimeout(removeGoogleRedirects, 100);
return;
}
for (var link of links) {
link.removeAttribute('onmousedown');
}
})();
2018年10月更新:
由于Google页面中的标记更改,h3.r
需要将其更改为div.r
。
我越走越替换h3.r > a
用#res .r > a
(改为“tag.class”只用“的.class”,并增加了家长的安全性,以便选择是不是太普通)。
如果将选择器更改为:Benjamin的脚本对我有用。 li.g div.vsc h3.r a
实际上,此用户脚本看起来可以完成此工作:
我发现此脚本最容易运行。将其复制并拖动到书签栏,然后在右键单击任何搜索结果链接之前单击它。
javascript: var items = document.getElementsByTagName('a'); for( var i = 0 ; i < items.length; i++ ) if( items[i].className=='l' ) items[i].onmousedown = null ;
上帝,这些人都是撒旦,但我更新了Beniamin给出的脚本,截至本文发布之日为止。使用此轻量级技巧,确保在剥离其mousedown事件的元素之前已加载页面。必须使用TamperMonkey才能完成这项工作。
// ==UserScript==
// @name Delete onmousedown
// @namespace google
// @version 0.1
// @description Allows you to right click links on Google search results without having them mangled on you.
// @include http://www.google.*/*
// ==/UserScript==
var tid = setInterval( function () {
if ( document.readyState !== 'complete' ) return;
var items = document.getElementsByTagName('a');
var succeeded=false;
for( var i = 0 ; i < items.length; i++ )
{
if( items[i].className=='l' )
{
if( items[i].onmousedown ) { succeeded=true; } // we stripped the urls
items[i].onmousedown = null ;
}
}
if( succeeded ) clearInterval( tid ); // stop invoking this routine when we succeeded.
}, 100 );