2013-10-14 64 views
2

对于这个IP直接,谷歌搜索一样的网页:如何更改页面中的所有链接?

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改变由自动脚本或类似的东西的联系?

+0

这个问题不好问,甚至没有提到的AJAX场景。在回答问题后,从根本上改变问题“不是板球”。 –

回答

1

要更改这些链接,静态网页(如你的例子):

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

完整userscript想是这样的:

// ==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然后drag it to the extensions page to install。 (或者安装the Tampermonkey extension并通过Tampermonkey安装脚本)。


重要:

  1. 对于AJAX驱动页,安装Tampermonkey和use waitForKeyElements()
  2. Google页面是一个PITA脚本。请注意,即使您更改了href,许多Google页面也会忽略该内容,并且在点击链接时也会偷偷地重定向链接。有关更多信息,请参阅或打开其他问题。
+0

我正在使用你的脚本,它工作得很好,直到我到达该网址:'http://62.0.54.118/search?&q=42&oq=42&sourceid=chrome&ie=UTF-8&filter=0#filter= 0&q = 42&start = 90 '和网站网址中包含'#'的每个网址,脚本都被卡住了。# *我如何让脚本和'#'一起工作? *如果nessecery如何使用waitForKeyElements()? - – reemar

+0

我曾见过http://stackoverflow.com/questions/10888326/executing-javascript-script-after-ajax-loaded-a-page-doesnt-work,但并没有真正意识到我该如何使用它。 – reemar

+0

你的意思是“剧本卡住”,***完全***? –

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' 

您将通过在页面中的所有网址都需要循环,并应用此他们每个人。

您是否需要帮助修改目标页面中的HTML,或者您是否可以从此处获得解决方案?

+0

我尝试使用该答案,但没有成功,我输入在url的地方javascript:youranswer和链接仍有待搜索?q =而不是搜索?&q =因为我想.. – reemar

+0

此外,我希望能够在域名'62.5.4.118'的任何地方工作。 – reemar

+0

对我而言,您引用的页面上的链接不包含字符串“http://62.0.54.118/search?”。我创建了一个[小提琴](http://jsfiddle.net/uMgRn/),它在'?'后面添加了一个'&'字符。这是否做你想要的? –

0

甲简洁单行可以书签作为一个scriplet:

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

即一个简单的方法来观察走过SO链接,无论相关或链接或原料,irregardless:

javascript:for(i in dl=document.links)dl[i].href=dl[i].href.replace(/[?].q=1/,"") 
相关问题