0

編集:この質問はばかげています。他の場所で間違いを犯したためです。

今日、Opera で自分のサイトをテストして、Chrome と FF で完全に動作することを確認することにしました。そこで、Ubuntu 用の最新の Opera をダウンロードして、自分のサイトにログインしようとしました。ブレ。

何らかの理由で、検証などに必要なフォームの「送信」イベントにバインドする関数を認識していaddEvent(element, eventtype, callback)ませaddEventListenerattachEvent

前述したように、これは Chrome と Firefox の両方で完全に機能します。私も試してみました

addEvent(loginForm, 'submit', function(){alert("It works");});

しかし、まったく反応がありませんでした。つまり、最初に考えたようにデフォルト アクションを停止することではなく、実際にはイベントをまったくバインドしません。上記の例に関してはloginForm、実際のフォーム要素への参照が含まれていることを確認できます。

Opera で何が起こっているのか、誰にも分かりませんか?

編集:以下は私のaddEvent機能です

function addEvent (obj, evt, callback) {
    if (evt=="mousewheel")
        evt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"
    if (obj.addEventListener){
        obj.addEventListener(evt, callback, false);
    } else {
        obj.attachEvent("on" + evt, callback);
    }
}
4

2 に答える 2

0

コードをコピーしました。以下を参照してください。

window.onload = function(){

    var loginForm = document.getElementById("frm");

    function addEvent (obj, evt, callback) {
        if (evt=="mousewheel") {
            evt = (/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"
        }
        if (obj.addEventListener){
            obj.addEventListener(evt, callback, false);
        } else {
            obj.attachEvent("on" + evt, callback);
        }
    }

    addEvent(loginForm, 'submit', function(){alert("It works");});
}

そして、それは機能します。私は現在OperaのPCを使用していますが。

Dragonfly を使用して、エラーがあるかどうかを確認しましたか?

于 2011-07-13T12:21:30.493 に答える
0

ここに別の恥知らずなフレームワークプラグがあります...

YAHOO.Util.Event.on( loginForm, 'click', function(e){
    alert('It definitely works now!');
} );

YUI/jquery を少し追加することに熱心かどうかはわかりません:D

于 2011-07-13T11:52:45.523 に答える