【问题标题】:Doing things depending of the action in a web page with Jquery使用 Jquery 根据网页中的操作执行操作
【发布时间】:2010-05-14 16:41:23
【问题描述】:

任何人都知道如何做到这一点:

当某些用户通过关闭浏览器或选项卡或转到其他站点离开我的站点时,我想做一个操作(显示警报)并且如果用户单击指向我自己站点的其他页面的链接或按钮,我想做另一个动作...

如果我使用卸载事件,我无法区分用户的这两种行为......请帮助,因为我真的需要它。

感谢您的帮助。

【问题讨论】:

    标签: javascript jquery events webpage


    【解决方案1】:

    在所有内部链接上设置标志:

    var isInternal = false;
    $('a[href^="http://mysite.com/"]').live('click', function() {
        isInternal = true;
    });
    
    // then in your onunload handler:
    
    if (isInternal) {
        // perform action 1
    } else {
        // perform action 2
    }
    

    更好的链接选择器可能是这样的:

    $('a:not([href*="//"])')
    

    但前提是您从不在自己的网站中使用绝对链接。

    【讨论】:

    • 我同意这一点。然后,内部链接上的标志可以告诉您是否从页面导航。但是,我认为重要的是要注意,如果您在元素上使用 onClick 事件,然后使用 javascript 进行重定向,这将不起作用。但总的来说这可能是你最好的解决方案。
    • @John - 根据触发点击处理程序的顺序,此方法可能仍然有效。
    • 如果我的主播看起来像 <a href="contact.php">Contact Us</a> 会这样吗?...这仍然是内部的吗?
    • 非常感谢...这种方法完成了我想做的 90%...页面...我看到卸载事件被调用,就像我离开了网站但我没有。
    猜你喜欢
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 2017-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多