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");

したがって、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スクリプトから同じ結果を得るにはどうすればよいですか?

4

1 に答える 1

3

これを行う正しい方法は、次のようunsafeWindowにの代わりに使用することです。window

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

ただし、これはChromeJSコンソールでは機能しないことに注意してください。

于 2012-11-04T23:58:13.390 に答える