Onclick元素模拟Esc键

时间:2015-02-20 11:26:50

标签: javascript jquery function esc-key

我有以下情况:

当用户点击链接时,应通过Javascript Esc键触发。 所以为了能够更好地解释它,我有以下几点 代码到目前为止:

1.我创建了一个功能:

//my function
function invokeEscKey() {
    var ev = document.createEvent('KeyboardEvent');
    ev.initKeyEvent(
        'keydown', true, true, window, false, false, false, false, 27, 0);
    document.body.dispatchEvent(ev);
}

也尝试使用jQuery:

//my function
function invokeEscKey() {
    jQuery.event.trigger({
        type : 'keypress', 
        which : 27 
    });
}

2.当用户点击href时,应该调用该函数:

$(function() {
    $('a.close').click(function() {
        //call this function to simulate ESC key press
        invokeEscKey();
    });
});

但这根本不起作用。我的问题是,解决这个问题的最佳方法是什么?

注意:我之所以这么说是因为我有一个弹出F11键(全屏模式)的弹出窗口。当用户点击关闭按钮时,必须撤消F11,这通常通过按ESC键来完成。我希望这是自动完成的。

1 个答案:

答案 0 :(得分:0)

JavaScript不能从浏览器窗口触发操作系统级事件,除非浏览器通过特殊功能或API本机支持它。您无法使用ESC键发送系统级键盘事件来关闭全屏模式,或者使用F1启动系统帮助。

相反,您可以使用主流浏览器支持的Fullscreen API:

if (document.exitFullscreen) {
    document.exitFullscreen();
} else if (document.mozCancelFullScreen) {
    document.mozCancelFullScreen();
} else if (document.webkitCancelFullScreen) {
    document.webkitCancelFullScreen();
}

更多信息: http://www.paulund.co.uk/javascript-full-screen-api