JavaScript更新href,然后按照它进行操作并保持预定目标

JavaScript更新href,然后按照它进行操作并保持预定目标,javascript,jquery,onclick,href,intercept,Javascript,Jquery,Onclick,Href,Intercept,我有个问题。我需要更新href,然后按照它进行操作。这似乎是一项非常简单的任务,因为我可以返回false,创建新的链接元素,然后初始化并单击它,或者只是更改位置。href 所以问题是:如何知道用户是否按住[CTRL]键或右键单击并选择了“在新选项卡中打开”、“在匿名选项卡中打开”或“在新窗口中打开”中的一个。。。当然也可以用左键点击 此href必须在单击时更新。鼠标悬停可能是一种选择,但在移动设备和平板电脑中会失败: 另外,如果你给出负面评价,最好知道原因:只需将它们发送到带有refferal

我有个问题。我需要更新href,然后按照它进行操作。这似乎是一项非常简单的任务,因为我可以返回false,创建新的链接元素,然后初始化并单击它,或者只是更改位置。href

所以问题是:如何知道用户是否按住[CTRL]键或右键单击并选择了“在新选项卡中打开”、“在匿名选项卡中打开”或“在新窗口中打开”中的一个。。。当然也可以用左键点击

此href必须在单击时更新。鼠标悬停可能是一种选择,但在移动设备和平板电脑中会失败:


另外,如果你给出负面评价,最好知道原因:

只需将它们发送到带有refferal url的重定向页面

<a href="https://www.MySite.com/redirect.php?refferal_href=https://www.google.com/">Link</a>

如果您没有启用php,请使用javascript获取重定向url。

好的,这里有一个解决方法:

HTML 这里的想法是,我们依靠其他用户交互(而不是单击)来重新编写HREF

我选择了mouseenter和focus来报道鼠标和键盘事件


这意味着他们将遵循的URL,即使他们右键单击并选择了新窗口,也将是正确的。

无法知道用户是否使用上下文菜单在新选项卡中打开等。您最好知道上下文菜单何时打开。通常不需要更新和遵循,您只需单击处理程序中的window.location.href='new_location',它就会重定向。这很像试图禁用网页右键单击。所有发生的事情就是你会惹恼你的用户!我不能做任何禁用,因为这是HUDGE portal、CQ5和大量其他功能。。。此链接更新仅用于在地图打开时添加参数,如果打开,则添加latlng。但我觉得这是不可能的。。如果可能的话,听起来有点安全问题打开和关闭地图时添加和删除latlng。地图可以拖动到任何地方,缩放可以更改等等。需求说明,这不能在所有用户操作上更新,只需在用户转到下一个详细信息页面时单击最后一个按钮。这些参数用于在下一页中构建面包屑,以便用户能够返回到相同的位置。好的,谢谢。不需要单击事件侦听器,因为它会在同一选项卡中打开链接。
header('Location: '.$_GET['refferal_href']);
<a href="default_location">Click</a>
$('a').on('mouseenter focus', function() {
    // Re-write url
    $(this).attr('href', 'redirected_location');
});

$('a').on('click', function(e) {
    // Prevent default behaviour (i.e. opening link)
    e.preventDefault();

    // Re-write url
    $(this).attr('href', 'redirected_location');

    // Re-direct to link
    window.location = $(this).attr('href');
});