我编写了一个JavaScript,当我点击链接时,它会打开“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>';
这是有效的,但是,如果在点击链接时按下某个键,我需要在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),我会理想打开页面。我怎么能这样做?
答案 0 :(得分:0)
此处的问题是Chrome在触发任何JS事件之前将Ctrl +单击作为新的窗口快捷键覆盖。如果您希望“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_shift_test()
在<{1}}中执行操作。
答案 1 :(得分:0)
当用户对任何超链接执行ctrl + click
时,正常的浏览器行为是在新标签中打开此超链接。 JavaScript代码无法阻止此行为。
但是,如果您想要停止打开新标签页,则需要从锚点链接中删除href
属性,或者只使用其他HTML元素(例如div,span)。