0

我正在编写一个填写表单的用户脚本(用于 Chrome 中的 Tampermonkey),它应该从页面中已经存在的 JavaScript 中获取变量并将这些变量放入表单中。到目前为止,这是我的代码:

document.getElementById('entry_1').value = window.a1[0];

对 entry_2 到 entry_5 和 a1 到 a5 重复。a1 定义如下:

var a1 = new Array("Green","green");

所以运行用户脚本应该将值“Green”放在表单字段entry_1中。但是,我得到了这个:

TypeError: Cannot read property '0' of undefined
at Function.eval (eval at <anonymous> (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:56:21))), <anonymous>:65:53)

如前所述,我使用的是 Chrome。在 javascript 控制台中运行用户脚本代码可以正常工作,并且确实会更改表单字段。如何从 Tampermonkey 脚本中获得相同的结果?

4

1 回答 1

3

正确的方法是使用unsafeWindow而不是window,如下所示:

document.getElementById('entry_1').value = unsafeWindow.a1[0];

但是请注意,这在 Chrome JS 控制台中不起作用。

于 2012-11-04T23:58:13.390 回答