:
<body>
<script>
var ping = {};
ping.test = '1234';
</script>
<a href="#" onclick="alert(ping.test);">Test</a>
</body>
編集:これを試してみてください。インタプリタがページを通過するとき
次のセクション
ping = new Object;
ping.test = '1234';
は独自の実行コンテキストです。グローバルスコープ内のコードは、グローバルオブジェクトをthis
経由で使用します。
しかし、ここで
<a href="#" onclick="alert(ping.test);">Test</a>
は個別の実行、無名関数としてお使いのブラウザビューです。使用する
<a href="#" onclick="alert(this);">Test</a>
私たちが望む結果にはなりません。行はwindow
と表示され、this
は実際にインラインイベントハンドラが動作する現在のオブジェクトに使用されています。
したがって、window
を参照することで、この文脈ではpingが表示されない限り、このコンテキスト内でpingは定義されません。ブラウザの実行時に
<a href="#" onclick="alert(window.ping.test);">Test</a>
は今、それは(\スクリプト\)コンテキストで
this
と同じになります
window
グローバル変数を取得し、
がで見ping.testするためにアクセスする必要があります次のブラウザ
- Google ChromeのMacの12.0.742.112
- Safariのバージョン5.0.5(6533.21.1)
- Firefo Xマック3.6.18
参照
Mozilla Docs: this keyword
Dom Events: inline model
多くのものを向上させることができますが、動作するはずFF4 – Mrchief
で私のために動作します。 – alex
また、スクリプトの種類を指定する必要があります:type = "text/javascript" –