有一个非常简单的问题我没有找到解决它的任何解决方案。有没有办法区分:
我需要为这些操作绑定不同的Javascript代码。我知道我可以通过设置特殊类来过滤所有链接,但是有什么工作吗?
答案 0 :(得分:2)
您无法检测到浏览器的外部事件,例如用户点击浏览器的关闭按钮或从菜单中选择退出或在地址栏中输入新网址。
但是,您可以使用onbeforeunload
事件来做某事:
window.onbeforeunload = function(){
// do something
};
当用户通过点击页面链接,关闭浏览器或以任何方式离开当前页面导航到其他页面时,将触发此操作。
答案 1 :(得分:1)
您无法区分键入新网址或关闭窗口,但您可以向所有链接添加点击事件处理程序,以检查用户是否即将使用链接离开:
var links = document.getElementsByTagName("a");
for(var i = 0; i < links.length; i++) {
links[i].onclick = function() {
if (this.href.test(/^http[s]?:\/\//))
//external link clicked
};
}
对于其他人,您可以使用window.onbeforeunload
(请注意,此事件也将处理外部链接,因此如果您使用以前的解决方案,请注意不要处理它们两次)。