Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 密钥码问题-几乎与ctrlKey一起使用_Javascript_Html_Events_Keycode - Fatal编程技术网

Javascript 密钥码问题-几乎与ctrlKey一起使用

Javascript 密钥码问题-几乎与ctrlKey一起使用,javascript,html,events,keycode,Javascript,Html,Events,Keycode,我已经编写了一个JavaScript,当我点击一个链接时,它会在“content”div中打开一个特定的页面 HTML: JS: function load\u shift\u test(){ document.getElementById(“内容”).innerHTML=''; 这是可行的,但是,如果在点击链接时按下某个键,我需要它在2页之间进行选择,因此我以这种方式重写脚本: function load_shift_test(){ document.getElementById

我已经编写了一个JavaScript,当我点击一个链接时,它会在“content”div中打开一个特定的页面

HTML:

  • JS:

    function load\u shift\u test(){
    document.getElementById(“内容”).innerHTML='';
    
    这是可行的,但是,如果在点击链接时按下某个键,我需要它在2页之间进行选择,因此我以这种方式重写脚本:

    function load_shift_test(){
        document.getElementById("content").innerHTML='<object type="text/php" data="mineralwater.php" ></object>';
     if (event.ctrlKey) 
        document.getElementById("content").innerHTML='<object type="text/php" data="mineralwateredit.php"></object>';
    
    }
    
    function load\u shift\u test(){
    document.getElementById(“内容”).innerHTML='';
    if(event.ctrlKey)
    document.getElementById(“内容”).innerHTML='';
    }
    
    这也可以,但它也会在Chrome中打开一个新标签,我真的不喜欢它


    理想情况下,我希望在按下键“e”(不带ctrl)时打开页面。我如何才能做到这一点?

    这里的问题是,在触发任何JS事件之前,Chrome会将ctrl+click作为新窗口快捷方式覆盖。如果希望“e”作为修改键,请创建一个跟踪键位置状态的jQuery事件

    window.keyDown = false; //Start with key down is false
    $(document).keyup(function(event) { //On key up switch to false
      window.keyDown = (event.keyCode == 69) ? false : window.keyDown; 
    } ).keydown(function(event) { //On key down switch to true
      window.keyDown = (event.keyCode == 69) ? true : window.keyDown; 
    } );
    

    然后,通过检查全局变量
    窗口,您可以在
    load\u shift\u test()
    中执行操作。当用户对任何超链接执行
    ctrl+单击时,正常的浏览器行为是在新选项卡中打开此超链接。JavaScript代码无法停止此行为

    但是,如果要停止打开新选项卡,则需要从锚链接中删除
    href
    属性,或者只使用另一个HTML元素(例如div,span)


    这是一个。

    搞定了!非常感谢!!
    function load_shift_test(){
        document.getElementById("content").innerHTML='<object type="text/php" data="mineralwater.php" ></object>';
     if (event.ctrlKey) 
        document.getElementById("content").innerHTML='<object type="text/php" data="mineralwateredit.php"></object>';
    
    }
    
    window.keyDown = false; //Start with key down is false
    $(document).keyup(function(event) { //On key up switch to false
      window.keyDown = (event.keyCode == 69) ? false : window.keyDown; 
    } ).keydown(function(event) { //On key down switch to true
      window.keyDown = (event.keyCode == 69) ? true : window.keyDown; 
    } );