我编写了一个 JavaScript,当我点击一个链接时,它会在“内容”div 中打开一个特定的页面。
HTML:
<li><a href='#' onclick="load_shift_test()">Soft Drinks</a></li>
JS:
function load_shift_test(){
document.getElementById("content").innerHTML='<object type="text/php" data="mineralwater.php" ></object>';
这可行,但是,如果在单击链接时按下某个键,我需要它在 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>';
}
这也有效,但它也会在 Chrome 中打开一个新标签,我真的不喜欢它。
如果按下“e”键(不按 ctrl),我希望页面能够打开。我该怎么做?
最佳答案
这里的问题是 Chrome 在触发任何 JS 事件之前覆盖了 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;
} );
然后您可以通过检查全局变量 window.keyDown
在 load_shift_test()
中采取行动。
关于javascript - 键码问题 - 几乎可以与 ctrlKey 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32293957/