我有一个包含多个链接的 HTML 页面。有没有能力捕捉打开链接的事件?用户只需单击链接即可,也可以通过右键单击在新窗口或选项卡中打开它。
链接引用外部资源,我无法控制其内容。
最佳答案
我能想到一些客户端选项,但都不理想:
您可以替换链接的
href
与javascript:
运行您想要的任何代码的 url,然后导航到正确的 URL (location.href = "http://example.com"
)。但这很糟糕,因为如果用户右键单击 -> 新选项卡或禁用 JavaScript,它就会中断。您可以为
<a>
的点击事件添加事件监听器。 。但这不会在右键单击 -> 打开或用户切换并按 Enter 键时触发。您可以使用
onunload
文档本身的事件处理程序,但这不会告诉您用户要去哪里,并且如果用户打开新选项卡则不起作用。
如果您只想跟踪用户导航到的位置,那么服务器端解决方案是唯一万无一失的方法。您必须将用户发送到您自己的服务器,该服务器又会发送 HTTP 302 代码以将浏览器重定向到正确的 URL。当然,这需要比您想要的更多的基础设施。
关于javascript - 我怎样才能捕捉到链接的打开情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021185/