【问题标题】:Javascript and ctrl key conflictJavascript 和 ctrl 键冲突
【发布时间】:2016-12-11 18:43:20
【问题描述】:

div 我正在使用onclick 函数在其他页面上重定向。

但是当我使用 ctrl 键和鼠标时,链接会在下一个选项卡以及同一个选项卡中打开。理想情况下,它应该只在新标签页中打开。

代码如下:

<div onclick="window.location='some page url'">

【问题讨论】:

  • 你为什么要用 onclck 做这个?无论如何,这都是默认的浏览器行为。
  • @DaveNewton 是的,你是对的。但是当我使用简单的window.location="some url" 时,同样的事情发生了。

标签: javascript jquery keyboard


【解决方案1】:

只要这样做:

<a href="some page url">
 <div></div>
</a>

所以,当你点击它时,它会在同一个标​​签页中打开,当你按下 ctrl 键时,它会在新标签页中打开。

编辑:所以现在试试这个:

<div onclick="doRedirect()"></div>

<script>
    $(document).keydown(function(event){
        if(event.which=="17")
            cntrlIsPressed = true;
    });

    $(document).keyup(function(){
        cntrlIsPressed = false;
    });

    var cntrlIsPressed = false;


    function doRedirect()
    {
        if(cntrlIsPressed)
        { 
           window.open('some url','_blank');
        }
        else{
           window.location('some url');
        } 

    }
</script>

也可以在参数中指定url。

【讨论】:

  • 我知道这一点。但我不能这样做。这不是我的要求。
  • 那你有什么要求?
  • 我只想在点击div 时进行重定向。我不能使用&lt;a href=""&gt;
【解决方案2】:
<div onclick="window.open(
  'https://support.wwf.org.uk/earth_hour/index.php?type=individual',
  '_blank' // <- This is what makes it open in a new window.
);">
Click to open in tab
</div>

这是工作的example

【讨论】:

  • 感谢您的回答,但它阻止了点击的默认功能。用鼠标单击它时,它应该重定向到同一选项卡中的页面上。并且当使用 ctrl 键按下鼠标时,它应该只在新标签中打开。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多