2

对于此类 IP-direct 的页面,Google 搜索:

http://62.0.54.118/search?&q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0


如何将该页面中的所有链接从search?q更改为search?&q=

例如,我想建立链接:

http://62.0.54.118/search?q=42&ei=Xf5bUqHLOKeQ0AWV4YG4Cg&start=10&sa=N&filter=0

进入:

http://62.0.54.118/search?&q=42&ei=Xf5bUqHLOKeQ0AWV4YG4Cg&start=10&sa=N&filter=0


如何让 Chrome 通过自动脚本或类似的方式更改链接?

4

3 回答 3

1

要更改这些链接,请在静态页面上(如您的示例):

  1. 搜索适用的链接。
  2. 遍历链接并更改它们。(通常使用正则表达式。)

一个完整的用户脚本应该是这样的:

// ==UserScript==
// @name     _Modify select Google search links
// @include  http://YOUR_SERVER.COM/YOUR_PATH/*
// @include  http://62.0.54.118/*
// ==/UserScript==

var qLinks  = document.querySelectorAll ("a[href*='?q=']");

for (var J = qLinks.length - 1;  J >= 0;  --J) {
    var oldHref = qLinks[J].getAttribute ('href');
    var newHref = oldHref.replace (/\?q=/, "?&q=");

    //console.log (oldHref + "\n" + newHref);
    qLinks[J].setAttribute ('href', newHref);
}


将文件另存为GoogleLinkModify.user.js,然后将其拖到扩展页面进行安装。(或者安装Tampermonkey 扩展并通过 Tampermonkey 安装脚本)。


重要的:

  1. 对于 AJAX 驱动的页面,安装 Tampermonkey 并使用 waitForKeyElements()
  2. 谷歌页面是脚本的 PITA。请注意,即使您更改了href,许多 Google 页面也会忽略这一点,并且还会在您单击链接时偷偷地重定向链接。有关更多信息,请参阅或打开其他问题。
于 2013-10-15T00:59:19.003 回答
1

这是一个可以为您工作的正则表达式:

var url = 'http://62.0.54.118/search?q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0'
var regex = /(http:\/\/.*?search\?)(.*)/
console.log( url.replace(regex, '$1&$2') )

// 'http://62.0.54.118/search?&q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0'

您将需要遍历页面中的所有 url 并将其应用于每个。

您在修改目标页面中的 HTML 方面需要帮助,或者您可以从这里获得您的解决方案吗?

于 2013-10-14T15:21:25.420 回答
0

一个简洁的单行文字,可以作为文字添加书签:

javascript:for(i in dl=document.links)dl[i].href=dl[i].href.replace(/(http:.*search[?])(q=.*)/,'$1&$2')

IE。一种简单的方法来观察遍历的 SO 链接,无论是相关的、链接的还是原始的,不管:

javascript:for(i in dl=document.links)dl[i].href=dl[i].href.replace(/[?].q=1/,"")
于 2014-05-15T14:08:18.183 回答