gpt4 book ai didi

Javascript:如何检查用户是否更改域?

转载 作者:行者123 更新时间:2023-11-28 19:32:36 25 4
gpt4 key购买 nike

我知道我可以使用 onunload 在用户退出页面时执行某些操作,问题是无论用户离开页面、重新加载、关闭页面等,它都会起作用。

仅当用户将我的页面离开到另一个域时,我才需要运行脚本,例如:

如果用户位于 www.exemple.com/here 并访问 www.exemple.com/,则不会发生任何情况,但如果他从 www.exemple.com/here 访问 www.anotherdomain.com/,则脚本应该运行。

最好的方法是什么?

至于为什么我需要它,这是一个故事:

我使用 googleTagManager,需要在 session 结束时触发标签。仅当用户关闭窗口或离开站点域时, session 才会结束。如果他重新加载或停留在网站内,则代码不应触发。

最佳答案

我自己也需要这样的东西。我通过在页面完全加载后运行一个特殊函数来解决这个问题。此函数将单击事件处理程序附加到所有 <a>检查链接指向的位置并根据链接目标设置标志的元素。在我的 onunload 中检查了此标志函数,以便我可以决定是否显示警告。

但这是一个非常特殊的实现。这不适用于手动页面更改(用户输入 URL)或 JavaScript 位置更改。

不幸的是,我不再有源代码,但它可能看起来像这样(使用 jQuery):

var leaving = false;

$(function() {
$('a').click(function() {
leaving = !$(this).attr('href').match(/regex/);
});
});

$(window).bind('beforeunload', function () {
return leaving ? 'Really want to leave the page?' : null;
});

(未经测试!)

编辑:正如 Alex K. 在评论中建议的那样,您还可以 Hook 表单,而不仅仅是链接。

关于Javascript:如何检查用户是否更改域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26466888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com