2014-02-11 152 views
0

林刮網站,我試着去重定向到另一個網站,如果人們點擊一個鏈接,讓我注入一些javascript:攔截頁面重定向

$('a').on('click', function() { 

for (var ls = document.links, numLinks = ls.length, i=0; i<numLinks; i++){ 
    ls[i].href= 'http://mywebsite.com/test.php?url=' + this; 
} 

}); 

它的工作原理,但它僅適用於實際的鏈接<a href..>。有時點擊一個元素將作爲鏈接做一些JavaScript,我也想捕捉這個'事件'。它有我想着XMLHttpRequest如果我我不是走錯了瀏覽器有一個內置的叫XMLHttp對象,一個可以用它來攔截Ajax對象調用:

(function(open) { 
    XMLHttpRequest.prototype.open = function(method, url, async) { 

//do something... 

所以我的問題是:任何類似存在聽力和改變傳出的URL?

回答

1

就這樣我清楚這一點,每當有人點擊一個鏈接,你想弄清楚這個URL是什麼,改變它,然後將用戶重定向到你自己的URL?

$('a').on('click', function(event){ 
    event.preventDefault(); 
    var url = $(this).attr('href'); 
}); 

preventDefault()將停止重定向頁面。

在這一點上,url將是URL字符串,你可以做任何你想做的事情。要重定向用戶,請使用window.location.hrefwindow.location.replace

的jsfiddle這裏 http://jsfiddle.net/JQ5qC/

+0

如果一些JavaScript的產生,如URL什麼這樣:http://jsfiddle.net/JQ5qC/1/ – Youss

+0

不太清楚你的意思。 JavaScipt何時生成URL?在您的示例中,您只需在HTML頁面中的任意位置單擊即可將頁面重定向到CNET。 – bioball

+0

'只是重定向頁面'是由JavaScript保存'URL'。所以問題是,如何攔截此網址並在離開目的地之前將其更改? – Youss