键码问题 - 几乎可以与 ctrlKey 一起使用
Keycode issues - works almost with ctrlKey
我写了一个 JavaScript 当我点击 link.
时打开 "content" 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>';
这行得通,但是,如果在单击 link 时按下某个键,我需要它在 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 覆盖为新的 window 快捷方式。如果您希望 "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()
中采取行动。
当用户在任何 hyperlink 上执行 ctrl + click
时,正常的浏览器行为是在新选项卡中打开此 hyperlink。 JavaScript 代码无法阻止此行为。
但是,如果您想停止打开新标签页,则需要从锚点 link 中删除 href
属性,或者只使用另一个 HTML 元素(例如 div, 跨度).
这里是JsFiddle Demo.
我写了一个 JavaScript 当我点击 link.
时打开 "content" 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>';
这行得通,但是,如果在单击 link 时按下某个键,我需要它在 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 覆盖为新的 window 快捷方式。如果您希望 "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()
中采取行动。
当用户在任何 hyperlink 上执行 ctrl + click
时,正常的浏览器行为是在新选项卡中打开此 hyperlink。 JavaScript 代码无法阻止此行为。
但是,如果您想停止打开新标签页,则需要从锚点 link 中删除 href
属性,或者只使用另一个 HTML 元素(例如 div, 跨度).
这里是JsFiddle Demo.