English 中文(简体)
Javascript: different keyCodes on different browers?
原标题:Javascript: different keyCodes on different browsers?

因此,我看到一些论坛认为,不同的浏览器报告有不同的关键联系点,但似乎每个人都避免了“hy?

我正试图抓获上校(:)关键地段,并实现“......”报告。 法典 565. 妇 女 虽然“ Chrome”报告回头186(我认为这是什么)。

所有浏览器是否都采用统一的方式获得正确的钥匙。

如果它们是相同的钥匙,那么它们为什么会有所不同?

我会更奇怪的是,是否有一种国际途径来吸引同样的关键媒体。

感谢。

最佳回答

rel=“noretinger”http://unixpa.com/js/key.html。 解释为什么它们有不同的钥匙。 我不知道有国际办法与钥匙匹配。

问题回答

这取决于您是否重新对用户要求哪些物理钥匙或用户的类型表示兴趣。 如果是你之后的特性,你可以在所有主要浏览器(使用<条码>关键的活动<条码>,在大多数浏览器或<条码>上<>关键Code;=8)中可靠地获得,但仅限于<条码>关键标/代码>的活动。 如果你在钥匙之后重新使用<代码>keydown或keyup活动,并审查keyCode property,尽管各浏览器之间准确的关键编码绘图有所不同。

可在 rel=“noreferer”http://unixpa.com/js/key.html上找到所有 Java本主要相关活动的良好解释和参考。

为了在所有主要浏览器中可靠地识别用户特征,你可以采取以下行动:

document.onkeypress = function(e) {
    e = e || window.event;
    var charCode = (typeof e.which == "number") ? e.which : e.keyCode;
    if (charCode && String.fromCharCode(charCode) == ":") {
        alert("Colon!");
    }
};

这是一个老的问题。 这样做的现代方式是利用活动。 见。 MDN Key

2022 - event.key gives the "logical" key, event.code gives the "physical" key

在MacOS、Windowspher &、Windowsookkey等测试的一些实例:

event.key event.code
"Enter" "Enter"
"Enter" "NumpadEnter"
"8" "Digit8"
"8" "Numpad8"
"/" "Slash"
"/" "NumpadDivide"

edge cases

  • Windows Chrome/Edge, when pressing ctrl+Enter the event.key is " "

2023 在此,我早就利用了一种不同的解决办法。

它涉及使用隐蔽的文字,以达到这种特性。 它是一只黑板,但它在所有主要浏览器中毫无节制地工作,并节省了骑手或骑手等工作的头痛。

我在此只字不提。 它对它的解释是公正的。 如果你重新想要在包括歌剧等在内的所有流动浏览器中工作,那么你就不得不改变固定位置,以达到绝对定位,并确保文本安放在网页可见部分的中间点上,以避免在特性被归类时出现滚动。

基本上,制造隐蔽的文字区,在窗户上添加一个关键节日活动,重点是文字区,了解文字区的价值,重新确定文字区,把原先重点内容集中起来......并且选择性地产生先前重点内容的特性。

    /*create a hidden textarea*/
    var keyGrabber = document.createElement( textarea );
    keyGrabber.style.border =  0 ;
    keyGrabber.style.margin =  0 ;
    keyGrabber.style.padding =  0 ;
    keyGrabber.style.outline =  none ;
    keyGrabber.style.position =  fixed ;
    keyGrabber.style.top =  0 ;
    keyGrabber.tabIndex =  -1 ;
            
    document.body.appendChild(keyGrabber);
    
    /*Avoid confusion for screen readers*/
    keyGrabber.setAttribute( aria-hidden , true );
    
    /*Init the variables here so they are global and easy to access*/
    var oldActiveElement = document.activeElement;
    var oldStart = 0;
    var oldEnd = 0;
    
    /*Catch the keydown event and store the active elements selection start and end in case you still want the character to be typed*/
    window.addEventListener( keydown ,function(e){
        oldActiveElement = document.activeElement;
        oldStart = oldActiveElement.selectionStart;
        oldEnd = oldActiveElement.selectionEnd;
        keyGrabber.focus();
        /*If you need to capture keys that don t generate written characters, you ll have to do that here using e.key || e.keyCode */
    });
    
    keyGrabber.addEventListener( input ,function(){
        var character = keyGrabber.value;
        if(character ==  : ){
            alert( You typed a colon! );
            /*replace alert with whatever code you want to execute when a colon is typed*/
        }
        keyGrabber.value =   ;
        oldActiveElement.focus();
        /*This part is optional, in case you want to still have the typed character generate in an input and also fire the event. You would then also replace "window.addEventListener..." with "yourInput.addEventListener..."*/
        var part1 = oldActiveElement.value.slice(0,oldStart);
        var part2 = oldActiveElement.value.slice(oldEnd,oldActiveElement.value.length);
        oldActiveElement.value = part1 + character + part2;
        oldActiveElement.selectionStart = oldStart + 1;
        oldActiveElement.selectionEnd = oldActiveElement.selectionStart;
    });

请不要照抄/照抄这一法典,并期望它无情地工作。 我从记忆中打字,而不是从工作档案中复制。 如果把表Index设定为-1,那么胎儿就会停止工作,我可以记住。 我认为,这是很不错的,但请重复检查。





相关问题
selected text in iframe

How to get a selected text inside a iframe. I my page i m having a iframe which is editable true. So how can i get the selected text in that iframe.

How to fire event handlers on the link using javascript

I would like to click a link in my page using javascript. I would like to Fire event handlers on the link without navigating. How can this be done? This has to work both in firefox and Internet ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Clipboard access using Javascript - sans Flash?

Is there a reliable way to access the client machine s clipboard using Javascript? I continue to run into permissions issues when attempting to do this. How does Google Docs do this? Do they use ...

javascript debugging question

I have a large javascript which I didn t write but I need to use it and I m slowely going trough it trying to figure out what does it do and how, I m using alert to print out what it does but now I ...

Parsing date like twitter

I ve made a little forum and I want parse the date on newest posts like twitter, you know "posted 40 minutes ago ","posted 1 hour ago"... What s the best way ? Thanx.

热门标签