如何使用jquery在新选项卡或窗口中捕获打开的链接?

是否可以使用jQuery捕获在新窗口/选项卡中打开的右键单击或在新窗口/选项卡事件中打开鼠标滚轮?
更新1
这就是我需要它的原因。 我有使用分页类的codeigniter应用程序。 我用这个类来显示一个网格。 分页链接已与使用AJAX加载容器div中的下一页的方法绑定。 现在有人可以右键单击并在新标签/窗口中打开我不想要的下一页。 恕我直言,处理这个问题的唯一方法是在新窗口/标签事件中打开(右键单击或鼠标滚轮按钮单击)陷阱。
更新2
我刚刚意识到我的所有AJAX请求都由一个CI控制器提供服务,它实际上充当其他类/库的代理。 在这个控制器中,我可以查看请求,如果它不是AJAX请求,我可以将用户重定向到另一个页面。

解决方法是使用按钮替换所有适用的元素,其中(显然)按钮会调用执行相应导航的JavaScript。

如果你真的很热衷,你可以应用CSS来使按钮看起来像元素,虽然我不推荐它,因为它会混淆那些可能试图将它们视为标准链接并右键或中键点击它们的用户。

(你甚至可以让那些没有启用JavaScript的用户使用它,例如,使每个按钮成为一个自己的小forms的提交按钮。)

至少你可以使用.mousedown() (或者,可能是mouseup() )捕获右键单击。 有关更多信息,请参阅此StackOverflow关于右键单击的答案 。 通过捕获它,你应该能够做一个标准的event.preventDefault()然后从那里做你喜欢的事情。 然而,这可能是过度的,因为它可能会阻止用户做你想让他们做的其他事情。

我现在几乎为我正在处理的页面修复了类似的问题。 我的修复是在页面中进行一些更改,如果已在新窗口中打开….

假设您在新窗口中从页面“A”打开页面“B”。

如果要检查页面“B”是否在页面“A”的新窗口中打开,请按照以下步骤操作。

 If (document.referrer == "A" && window.history.length > 1) { alert("I am page 'B' and opened from page 'A' in a new window"); } 

如果您不希望人们以常规方式访问链接或在禁用JS时回退,那么它不应该是链接。 只需使用您喜欢的任何元素(span,div,button,无论您喜欢什么),并将其设置为链接样式。 然后使用JS绑定动作。 或者您可以使用带有href="#"href="javascript: void(0)" 。 这样,如果用户右键单击它并选择在新窗口中打开,那么它们将最终位于之前的同一页面中。