拦截页面重定向

时间:2014-02-11 18:31:43

标签: javascript jquery

我正在抓一个网站,如果有人点击一个链接,我试图重定向到另一个网站,所以我注入了一些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 个答案:

答案 0 :(得分:1)

就这样我很清楚,只要有人点击某个链接,你想知道该网址是什么,改变它,然后将用户重定向到你自己的网址?

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

preventDefault()将阻止页面重定向。

此时,url将是URL字符串,您可以随意执行任何操作。要重定向用户,请使用window.location.hrefwindow.location.replace

JS在这里 http://jsfiddle.net/JQ5qC/