2016-03-14 130 views
0

我只是試圖讓這個腳本:Greasemonkey腳本修改URL不起作用?

// ==UserScript== 
// @name   Link Bypasser Script 
// @include *http://onion.com/* 
// @run-at  document-start 
// ==/UserScript== 

var oldUrl = window.location; 

var newURL = "http://localhost:8887/processor.php?link=" + oldUrl; 
window.location.replace (newURL); 

我「inlcude」多個URL,但我不認爲這是相關的展示,反正,這個劇本我覺得會變成,例如,http://onion.com/4GUTDTAhttp://localhost:8887/processor.php?link=http://onion.com/4GUTDTA ,但沒有任何反應:

這個我嘗試過:

var oldUrlPath = window.location.path; 

有:

+ "http://localhost:8887/processor.php?link=" + oldUrlPath 

沒有哪個然而修改它,但它只是增加了路徑,這是有意義的之前的鏈接,因爲我用window.location.path。我也試過用

var oldUrl = window.location.href; 

哪沒什麼。

回答

1
var oldUrl = window.location.href; 
var newURL = "http://localhost:8887/processor.php?link=" + oldUrl 

window.location.replace (newURL); 
+0

我不明白這到底是怎麼正確的。它將搜索和哈希部分兩次添加到新的URL。 – trincot

+0

@trincot是否必須在調用window.location.replace之前調用decodeURIComponent()?此外,我刪除了額外的搜索和散列部分 – koolhuman

0

您應該編碼與encodeURIComponent字符串你把它添加到一個URL前:

var oldUrl = window.location.href; 
var newURL = "http://localhost:8887/processor.php?link=" 
       + encodeURIComponent(oldUrl); 
window.location.replace (newURL); 
+0

我不知道它是否與你的代碼有關,但沒有發生任何事情。開始時可能有錯誤。 – DisplayName

+0

我想了解爲什麼它不適合你。我用GreaseMonkey在我的機器上覆制了它,並且它完美地工作。接受的答案不適用,因爲它重複了URL參數。你在GreaseMonkey標題中使用'@ grant'嗎?我不假定,因爲它不在問題中。 – trincot