使用onKeyDown Chrome App

时间:2014-03-05 03:54:21

标签: 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.html', {
    state: "fullscreen"
  });
});

如何将OnKeyDown添加到我的main.js以使其工作?或者我需要将该功能放入另一个文件?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:3)

试试这个:

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>

xyz.js 引用相同的窗口对象:

chrome.app.window.current().onKeyDown = ...

答案 1 :(得分:1)

我在Chrome API文档中没有看到chrome.app.window.onKeyDown。

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

无论是在background.js页面中添加侦听器还是在HTML文件中引用的页面都没有区别。我认为后者会更好,因为keydown事件只与用户界面相关,而不是后台页面。此外,按下某个键时所执行的操作可能适用于应用页面,而不是后台页面。