我的代码为什么不检测ctrl键状态起作用?

问题描述 投票:0回答:1

如果用户单击enter时按下shift,则尝试打开新窗口,如果单击ctrl,则单击新选项卡。 shift部分有效,但ctrl部分无效...

var ctrlPressed = false;
var shiftPressed = false;
var stb = null;
function onload() {
stb = document.getElementById("searchTextBox");
}
    function enter(e) {

        if (e.keyCode == 13) {
            if (!ctrlPressed && !shiftPressed) {
            window.location = "http://search.yahoo.com/search?p=" + encodeURI(stb.value) + "&fr2=sb-top&fr=404_web&pqstr=" + encodeURI(stb.value);
            }
            else if (ctrlPressed) {
            window.open("http://search.yahoo.com/search?p=" + encodeURI(stb.value) + "&fr2=sb-top&fr=404_web&pqstr=" + encodeURI(stb.value));
            }
            else if (shiftPressed) {
            window.open("http://search.yahoo.com/search?p=" + encodeURI(stb.value) + "&fr2=sb-top&fr=404_web&pqstr=" + encodeURI(stb.value), "_blank");
            }
        }
    }
    function searchdown(e) {
        if (e.keyCode == 17) {
            ctrlPressed = true;
        }
        else if (e.keyCode == 16) {
            shiftPressed = true;
        }
    }
    function searchup(e) {
        if (e.keyCode == 17) {
            ctrlPressed = false;
        }
        else if (e.keyCode == 16) {
            shiftPressed = false;
        }
    }

而且我也不能使用jQuery ...

javascript html dom-events internet-explorer-9 keypress
1个回答
2
投票

您是否知道event.ctrlKey会告诉您是否按住控制键?

© www.soinside.com 2019 - 2024. All rights reserved.