【发布时间】:2014-10-24 13:26:19
【问题描述】:
请原谅我的无知。我只是在学习如何使用 node webkit,并且想知道如何通过菜单项填写表单数据。我正在使用下面的代码并使用“填充”菜单项填写表单数据。但是它报告 var elem = document.getElementById("username");返回空值。有什么想法吗?
var gui = require('nw.gui');
var file = require('file.js');
var menu = new gui.Menu({ type: 'menubar' });
menu.append(new gui.MenuItem({
label: 'File',
submenu: new gui.Menu()
}));
menu.items[0].submenu.append(new gui.MenuItem({
label: 'New',
click: function () {
gui.Window.open('index.html');
}
}));
menu.items[0].submenu.append(new gui.MenuItem({
label: 'fill',
click: function() {
var elem = document.getElementById("username");
elem.value = "myusername";
}
}));
gui.Window.get().menu = menu;
我正在测试的 HTML 只是一个带有一个输入的 html 文档
<input type="text" id="username">
这是我得到的错误
Uncaught node.js Error
TypeError: Cannot set property 'value' of null
at MenuItem.menu.items.(anonymous function).submenu.append.gui.MenuItem.click (file:///C:/nodewebkit/js/main.js:22:13)
at MenuItem.handleEvent (menuitem.js:171:12)
at IDWeakMap.global.__nwObjectsRegistry.handleEvent (node.js:795:26)
更新: 我不知道这是否相关,但我注意到的一件事是,当我尝试在控制台中执行此操作时,我在执行时得到“未定义”
var elem = document.getElementById("username");
但是当我进入时
elem = document.getElementById("username");
它返回元素就好了。但是,在脚本中进行更改仍然会给我带来同样的问题。
【问题讨论】:
-
你能发布html吗?
-
里面只有
-
适合我,你用的是什么版本?
-
三次检查您的 HTML,因为只有当没有 ID 为
username的元素时它才会返回 null。 -
在开发人员窗口中更仔细地查看它,我收到一条错误消息,提示“未捕获的 ReferenceError:未定义要求”
标签: javascript node.js webkit node-webkit