[英]key down event of ; are not working in firefox. But, working in chrome
$("body").on("keydown", function (evt) { if (evt.keyCode === 186) { $("#message").html("Pressed ;"); } else { $("#message").html("Not Pressed ;"); } }) d3.select("body").on("keydown", function () { if (d3.event.keyCode === 186) { $("#d3-message").html("D3 - Pressed ;"); } else { $("#d3-message").html("D3 - Not Pressed ;"); } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> jQuery <div id="message"></div> <hr> D3 <div id="d3-message"></div>
我的代碼中有這種邏輯,而且這僅適用於chrome,不適用於Firefox
除此之外,即使對於D3.js,也需要解決此問題
提前致謝
正如metal03326所指出的;
Chrome和Firefox不同。 此頁面包含不同瀏覽器如何處理keyCode的細分。
您可以通過檢查.key
屬性來解決此問題:
$("body").on("keydown", function (evt) {
if (evt.key === ';') { console.log("pressed ;"); }
})
.keyCode
屬性已棄用,您不應使用它。 KeyboardEvent的MDN頁面顯示的內容如下:
警告:不建議使用此屬性; 您應該改用
KeyboardEvent.key
(如果有)。
$("body").on("keydown", function (evt) { if (evt.key === ';') { $("#message").html("Pressed ;"); } else { $("#message").html("Not Pressed ;"); } }) d3.select("body").on("keydown", function () { if (d3.event.key === ';') { $("#d3-message").html("D3 - Pressed ;"); } else { $("#d3-message").html("D3 - Not Pressed ;"); } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> jQuery <div id="message"></div> <hr> D3 <div id="d3-message"></div>
在Firefox中;
是與代碼59 。 您可以在這里檢查。
$("body").on("keydown", function (evt) { var isFirefox = typeof InstallTrigger !== 'undefined'; if (evt.keyCode === 186 && !isFirefox) { $("#message").html("Pressed ;"); } else if(evt.keyCode === 59 && isFirefox){ $("#message").html("Pressed ;"); }else { $("#message").html("not Pressed ;"); } })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="message"></div>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.