访问" head"来自Tampermonkey脚本的变量

时间:2012-11-04 23:40:57

标签: javascript google-chrome greasemonkey tampermonkey

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

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

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

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

因此运行userscript时应将值“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脚本中获得相同的结果?

1 个答案:

答案 0 :(得分:3)

执行此操作的正确方法是使用unsafeWindow代替window,如下所示:

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

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