0

我有以下情况:

当用户点击一个链接时,应该触发 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 键来完成。我希望这能自动完成。

4

1 回答 1

2

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

于 2015-02-20T11:39:36.600 回答