2012-11-04 129 views
0

我正在寫一個表單填充userscript(用於Chrome中的Tampermonkey),它應該從頁面中已經存在JavaScript變量並將這些變量放在窗體中。這裏是我的代碼到目前爲止:從Tampermonkey腳本訪問「頭」變量

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

重複爲entry_2通過entry_5和a1到a5。 a1定義如下:

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

因此運行userscript應在表單字段entry_1中輸入值「Green」。不過,我得到這個:

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控制檯中運行userscript代碼可以正常工作,並且確實會更改表單字段。我如何從Tampermonkey腳本中獲得相同的結果?

回答

3

正確的方式做,這是使用unsafeWindow代替window,像這樣:但是

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

注意的是,這並不在Chrome JS控制檯中工作。