捕获可能重定向/打开新浏览器的所有浏览器事件

时间:2009-07-15 11:36:14

标签: javascript javascript-events

我需要在页面上使用javascript,只要我点击某个内容就可以捕获一个事件,并且该点击可能会导致重定向,在新窗口中打开等等。

由于链接有时不直接打开一个新窗口,它们调用一个javascript函数(window.open,document.location.href)。是否有可能抓住它们并编辑网址。

感谢。

2 个答案:

答案 0 :(得分:1)

您可以为document.body分配一个onclick处理程序,并使用event.target检测已单击的元素,这基本上是在进行事件委派。

通过拥有事件目标,您可以了解所点击的元素的所有内容,例如tagName和所有元素属性:

document.body.onclick = function(event){
  if (event.target.tagName == 'A'){ //Handle anchors
    var url = event.target.href;
    // redirect, window.open, or whatever you want...

    event.preventDefault();
  }
}

答案 1 :(得分:0)

您可以使用click链接事件来实现此目的。如果您使用的是jQuery,它可能会是这样的:

$("a").click(function() {
    /* Open the site in a new window */
    var strNewURL = "http://example.com/redirect.php?id=" + this.href;
    window.open(strNewURL, "myFancyNewWindow");

    /* Stop the browser following the original link */
    return false;
});

这显示了如何在href的前面添加一个额外的位来通过自己的重定向脚本将用户发送到那里。

如果您只想对某些链接执行此操作,则可以优化选择器,例如$("#content a")

另请参阅:https://developer.mozilla.org/En/DOM/Window.openhttp://docs.jquery.com/Events/click