我正在尝试创建一个正常指向URL 1的链接,并在持有移位键时指向URL 2。我到达了此代码示例,该示例正确切换了链接(如链接悬停在浏览器状态栏中所示),但是单击URL 2不起作用:浏览器只是什么都不做。是的:存在一个链接,但是单击它只是什么都不做。

在Firefox 3.6.6和Safari 5.0中尝试了这一点,这两者都相同。

有提示吗?谢谢!

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script>
$(document).keydown(function(event) {
  if (event.keyCode == '16') {
    $("#mylink").text("My Link Extended");
    $("#mylink").attr("href", "http://www.google.com/");
  }
});
$(document).keyup(function(event) {
  if (event.keyCode == '16') {
    $("#mylink").text("My Link");
    $("#mylink").attr("href", "bla");
  }
});
</script>
<a href="normalurl" id="mylink">My Link</a>
有帮助吗?

解决方案

似乎在按下Shift键时,浏览器有点忙于更新DOM,因此我贴上了标志:

<script type="text/javascript">
  $(document).ready(function() {
    var ExtendedLinkShown=false;

    $(document).keydown(function(event) {
      if (!ExtendedLinkShown && event.keyCode == '16') {
        $("#mylink").text("My Link Extended");
        $("#mylink").attr("href", "http://www.google.com/");
        ExtendedLinkShown=true;
      }
    });
    $(document).keyup(function(event) {
      if (event.keyCode == '16') {
        $("#mylink").text("My Link");
        $("#mylink").attr("href", "bla");
        ExtendedLinkShown=false;
      }
    });
  });
</script>

现在唯一的问题是 - 正如罗曼·德沃德(Romain Deveaud)指出的那样 - 转移 +单击打开一个新的浏览器窗口。

其他提示

看来,因为换档键是按下DOM认为“浏览器”将处理特殊请求的。因此,当命令发送到DOM打开时,它会失败。

我做了一些测试,并提出了这一点。

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script>
$(document).keydown(function(event) {
  if (event.keyCode == '16') {
      event.keyCode = null; //Remove that
    $("#mylink").text("My Link Extended");
    $("#mylink").attr("href", "http://www.google.com/");
      event.keyCode = '16'; //Add it back
  }
});
$(document).keyup(function(event) {
  if (event.keyCode == '16') {
    event.keyCode = null; //Remove that
    $("#mylink").text("My Link");
    $("#mylink").attr("href", "bla");
    event.keyCode = '16'; //Add it back
  }
});
</script>
<a href="normalurl" id="mylink">My Link</a>

这似乎在Google Chrome中起作用,但很骇人听闻。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top