2

これは私のコードです。

function postbackOnCheck() {
    var o = window.event.srcElement;

    if (o.tagName == 'INPUT' && o.type == 'checkbox' && o.name != null && o.name.indexOf('CheckBox') - 1) 
    {
        __doPostBack("", "");
    }
}

そして、私はいくつかの研究を行いました。window.event.srcElement が firefox で使用できないことがわかりました。だから私はコーディングを..

function postbackOnCheck() {
    var o = window.event.srcElement || e.target;

    if (o.tagName == 'INPUT' && o.type == 'checkbox' && o.name != null && o.name.indexOf('CheckBox') - 1) 
    {
        __doPostBack("", "");
    }
}

それでもまだ機能していません。誰かが私を助けてくれることを願っています。

4

1 に答える 1

4

window.eventは Firefox には存在しないため、アクセスしようとするとエラーがスローされますwindow.event.srcElemente機能したとしても、どこにも定義していないため、e.targetエラーも発生します。

W3C 互換のブラウザーでは、イベント オブジェクトが最初の引数としてイベント ハンドラーに渡されます。IE では、 からアクセスできますwindow.event
したがって、偶数オブジェクトへの参照を取得するには、次のことを行う必要があります。

function eventHandler(event) {
    // if `event` is not defined, we fall back to `window.event`
    event = event || window.event;
}

event.targetイベントをトリガーした要素への参照を取得するには、W3C 互換ブラウザーとevent.srcElementIE でアクセスする必要があります。

// if `event.target` is not defined, we fall back to `event.srcElement`
var target = event.target || event.srcElement;

イベント処理とブラウザーの違いについて学ぶための優れた情報源は、quirksmode.orgです。

于 2012-11-23T08:38:28.850 に答える