2010-07-02 70 views
7

嘿,我想重定向頁面,當它完成加載...如何使用Greasemonkey中的JavaScript重定向某些頁面?

例如,當google.com完成加載,我想送一個JavaScript以找東西...

我怎麼能做它?

+0

你能發表一些代碼嗎? – streetparade 2010-07-02 20:36:26

+0

javascript:var%20values%20 =%20 [「mail」,%20「pass」];%20 $(「input」)。each(function(i){%20 $(this).val(values [ I]);%20});%20doLogin(); – Shady 2010-07-02 21:18:15

回答

7

這簡直就是我怎麼會去重定向:

//==UserScript== 
// @name Redirect Google 
// @namespace whatever.whatever... 
// @description Redirect Google to Yahoo! 
// @include http://www.google.com 
// @include http://www.google.com/* 
// @include http://*.google.com/* 
//==/UserScript== 
window.location = "http://www.yahoo.com" 

...當然取代谷歌和雅虎有別的東西的網址。你不需要任何外部庫(jQuery)或類似的東西。

我會不是推薦這個,因爲它對於最終用戶來說更麻煩,但是取決於腳本的功能。

+0

用這個命令,你可以用「javascript:var%20values%20 =%20 [」mail「,%20」pass「];%20 $(」input 「)。每個(函數(I){%$ 20(本).VAL(值[I]);%20});%20doLogin();」? – Shady 2010-07-03 00:16:46

+0

是的,它應該工作,雖然我沒有測試它。據我所知,'window.location'就像你在地址欄中輸入帶引號的文本一樣。 ;) – esqew 2010-07-03 00:34:30

+0

沒有使用javascript命令=/ – Shady 2010-07-03 01:50:45

4

使用window.location.replace(url)如果你想重定向的方式,在當前頁面由後退按鈕忘記了用戶,否則如果使用window.location = url然後當用戶按下後退按鈕,然後userscript將再次踢,將他們推回到他們剛纔的頁面上。

4

這種方法是迄今爲止我找到的最靈活的方法。在一個腳本中指定多個重定向很容易:

// ==UserScript== 
// @name  Redirector 
// @namespace http://use.i.E.your.homepage/ 
// @version 0.1 
// @description enter something useful 
// @match  http://*/* 
// @copyright 2012+, You 
// @run-at document-start 
// ==/UserScript== 

//Any page on youtube.com is automatically redirected to google.com - you can use this 
//function to redirect from any page to any other page. 
redirectToPage("http://www.youtube.com/", "http://www.google.com"); 
//You can put several of these redirects in a single script! 
redirectToPage("en.wikipedia.org", "http://www.stackoverflow.com"); 


function redirectToPage(page1, page2){ 
if(window.location.href.indexOf(page1) != -1){ 
    window.location.href = page2; 
} 
} 
+0

非常好,謝謝! – Cerberus 2015-08-16 02:30:02