Javascript 进入chrome应用程序提交
我创建了一个小应用程序,当按下enter键时应该执行一个操作。当我在浏览器中打开html时,它会像我希望的那样工作,但当我将其作为chrome应用程序打开时,它不会。以下是html:Javascript 进入chrome应用程序提交,javascript,html,forms,google-chrome-app,enter,Javascript,Html,Forms,Google Chrome App,Enter,我创建了一个小应用程序,当按下enter键时应该执行一个操作。当我在浏览器中打开html时,它会像我希望的那样工作,但当我将其作为chrome应用程序打开时,它不会。以下是html: <input type="text" id='command' onkeydown="keyDown()"> (不要介意“else{…}”部分) 在浏览器中,代码会像应该的那样发出“嗨”的警报。这就是我知道它在浏览器中工作的原因。但是chrome应用程序不起作用。 有人能帮忙吗?谢谢 我假设您的HTM
<input type="text" id='command' onkeydown="keyDown()">
(不要介意“else{…}”部分)
在浏览器中,代码会像应该的那样发出“嗨”的警报。这就是我知道它在浏览器中工作的原因。但是chrome应用程序不起作用。
有人能帮忙吗?谢谢 我假设您的HTML实际上在ID属性上有结束引号,如
<input type="text" id='command' onkeydown="keyDown()">
将keyDown()
函数作为侦听器附加到id为命令的元素上的onkeydown
事件
您可以在此处阅读有关addEventListener
的更多信息:
有关Chrome应用程序强制执行的内容安全策略的更多信息,请参见此处:在按键功能中,定义事件对象(关键字),如下所示:
<input type="text" id='command' onkeydown="keyDown(event)">
您的id='command
从未关闭。只需在HTML中的命令末尾添加,
,很抱歉,它实际上是关闭的。将代码复制到帖子时出错。您应该阅读另一个答案以了解您的答案不正确的原因。更不用说它甚至没有尝试处理处理程序未运行的问题。或者说,老实说,event
在onkeydown
中的内联代码上下文中是未定义的。
document.getElementById('command').addEventListener('keydown', keyDown);
<input type="text" id='command' onkeydown="keyDown(event)">
function keyDown(event){
if(event.keyCode == 13) {
var command = document.getElementById('command');
var value = command.value;
if(value === "exit"){
alert('hi');
var mainWindow = chrome.app.window.get('firstInstall');
mainWindow.close();
} else {
document.getElementById('command').className = 'unhidden';
}
}
}