【问题标题】:Retain a javascript link when the context menu is used使用上下文菜单时保留 javascript 链接
【发布时间】:2014-06-06 09:25:18
【问题描述】:

如果启用了 javascript 并且满足某些条件,我有以下链接可以在新选项卡中打开一个页面(在大多数浏览器中受用户配置影响)。

<a href="../scripts/no-javascript.htm" target="nojs" onclick="openWin(url,name); return false;">

href="../scripts/no-javascript.htm" 适用于未启用 javascript 或不满足条件的用户(no-javascript.htm 解释了原因)。这不能与 openWin(url,name) 中包含的 URL 或名称相同。

一切正常,除了如果用户右键单击并从上下文菜单中选择“在新选项卡/窗口中打开链接”,他们将被带到 no-javascript.htm。

有什么方法可以让我使用这种格式,并且在用户使用上下文菜单时仍然可以转到 openWin(url,name)?

谢谢。

【问题讨论】:

  • 您可以在新页面中编写一个 js 重定向。我不知道其他解决方案。也许其他人可以为您提供更多帮助。

标签: javascript html


【解决方案1】:

您不必使用 onClick。只需使用 JS 更改链接,如果用户禁用它,您将获得 nojs 页面。

HTML

<a id="the-link" href="../scripts/no-javascript.htm" target="nojs">

Javascript

document.getElementById("the-link").href = "../new_link.htm";

JSFiddle example

【讨论】:

  • 感谢 Itay Gal,我从你的答案和 Chris 给出的答案中得到了我需要的东西。我不能将它们都标记为答案,所以我将你的标记为“有用”。希望没关系。
【解决方案2】:

是的。 (我在这里假设 jquery)

<a id='nojs' href="../scripts/no-javascript.htm" target="nojs" onclick="openWin(url,name); return false;">
<script>
if (!conditionsmet) {
    $("#nojs").attr("href", "http://something.else");
}
</script>

【讨论】:

  • 谢谢克里斯,你是怎么用javascript做到的,我还没用过jquery?
  • 抱歉,阅读这篇文章为时已晚 - 但另一个答案给出了非 jquery 方式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多