使用jQuery跟踪来自浏览器的所有传出URL请求

时间:2012-03-22 17:58:53

标签: javascript jquery

当用户点击指向我网站上不同页面的任何超链接时,我需要阻止用户界面。 我知道有一种方法可以使用ajaxStart和ajaxStop跟踪所有jquery ajax请求,当浏览器等待来自服务器的响应时,我可以使用这些方法阻止我的UI。 但有没有办法拦截所有主流浏览器(firefox,Chrome和IE)的所有传出页面请求?

1 个答案:

答案 0 :(得分:5)

您可以绑定委托事件处理程序,该处理程序拦截将导航到您网站页面的所有<a href>元素的点击次数:http://jsfiddle.net/sNDf3/2/

​$("body").on("click", "a[href]", function(e) {
    // <a> elements have a .host property which represents the host of the href
    // so you can block internal links only
    if(this.host === "jsfiddle.net" && !confirm("Sure?")) {
        e.preventDefault();
    }
});​​​​​​​​​​​​​​​

即使您稍后因为委托而添加链接(将实际处理程序绑定到持久父级),这也会起作用。