13

私はこのスクリプトを持っています:

function postBackByObject(e) {
   var o = window.event.srcElement || e.target;
   if (o.tagName == "INPUT" && o.type == "checkbox") {
        __doPostBack("", "");
    }
}

このスクリプトを で使用しますonclick="postBackByObject();"

しかし、Firefox 21 では次のエラーが発生します。

TypeError: window.event が定義されていません

私の間違いは何ですか?

4

7 に答える 7

3

onClick次のようにイベントにイベントを渡します。

onclick="myCustomFunction(event);"

それは機能し、イベント オブジェクトにアクセスできます。

于 2014-11-15T16:54:32.537 に答える
2

インライン宣言でイベン​​ト オブジェクトを渡すことができます。

<input type="button" onclick="postBackByObject(event);" value="click" />

function postBackByObject(e) {
    var o = e.srcElement || e.target;
    // ...
}
于 2014-10-02T11:58:30.070 に答える
1

あなたのライン

var o = window.event.srcElement || e.target;

IE を除くすべてのブラウザーで失敗しますwindows.event

適切な定式化は次のようになります。

var o = e ? e.target : window.event.srcElement;

標準準拠のブラウザーはイベントをパラメーターとして渡し、eターゲットe.targetは IE で渡されるため、e未定義になり、使用する必要があります。 window.event.srcElement

IE の最近のバージョンは標準準拠モデルをサポートしていることに注意してください。

より一般的な注意として、値にアクセスしようとするa.b.c.da.b.c、定義済みのオブジェクトである必要があるため、エラーが発生しますa.b.c undefined

于 2013-06-25T12:23:09.813 に答える
0

window.event がすべてのブラウザーでサポートされているかどうかはわかりません。postBackByObject(e)の変数「e」でイベントを取得すると思います

于 2013-06-25T11:23:35.107 に答える