Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用onKeyDown Chrome应用程序_Javascript_Google Chrome App - Fatal编程技术网

Javascript 使用onKeyDown Chrome应用程序

Javascript 使用onKeyDown Chrome应用程序,javascript,google-chrome-app,Javascript,Google Chrome App,我有一个问题要问你们,我不是100%确定如何实现这一点 chrome.app.window.onKeyDown = function(e) { if (e.keyCode == 27 /* ESC */) { e.preventDefault(); } }; 我将我的清单转到main.js文件,在该文件中 chrome.app.runtime.onLaunched.addListener(function() { chrome.app.window.create('browser.h

我有一个问题要问你们,我不是100%确定如何实现这一点

chrome.app.window.onKeyDown = function(e) { 
  if (e.keyCode == 27 /* ESC */) { e.preventDefault(); }
};
我将我的清单转到main.js文件,在该文件中

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create('browser.html', {
    state: "fullscreen"
  });
});
如何将OnKeyDown添加到main.js以使其正常工作?或者我需要将该函数放入另一个文件中吗?任何帮助都将不胜感激

请尝试以下方法:

chrome.app.runtime.onLaunched.addListener(function() {
  chrome.app.window.create(
    'browser.html', 
    {state: "fullscreen"}, 
    function(win) {
      win.contentWindow.onKeyDown = function(e) ...
    }
  );
});
或者,您可以从HTML链接另一个脚本:

browser.html

...
<script src="xyz.js"></script>

我在ChromeAPI文档中没有看到chrome.app.window.onKeyDown

假设win是chrome.app.window.create回调函数的参数,则DOM窗口可用作win.contentWindow(而不是win)。这是您应该使用addListener函数向其中添加侦听器的窗口。我不确定onKeyDown是否定义为属性(…onKeyDown=函数…)


无论是在background.js页面中添加侦听器,还是从HTML文件引用的页面中添加侦听器,都没有区别。我认为后者会更好,因为按键事件只与用户界面相关,而与背景页面无关。此外,当按下某个键时,您所采取的任何操作都可能是针对应用程序页面,而不是后台页面。

那么if语句是否会同时出现在这两个函数中呢?
chrome.app.window.current().onKeyDown = ...