モデル化したいコードを見つけました。しかし、私はいくつか質問があるだけで、おそらくあなたたちが助けてくれるでしょう. コードは次のとおりです。
function addEvent( brw_obj, type, func ) {
if (brw_obj.addEventListener) { // all browsers except IE < v9
brw_obj.addEventListener( type, func, false );
} else if (brw_obj.attachEvent) { // IE only for v < v9
brw_obj["e"+type+func] = func;
brw_obj[type+func] = function() {
brw_obj["e"+type+func]( window.event );
}
brw_obj.attachEvent( "on"+type, brw_obj[type+func] );
}
/* else if (brw_obj.captureEvents) {
brw_obj.captureEvents(Event.CLICK); // only works with FF < v3!
}
*/
}
これで、コードが addEventListener または attachEvent をチェックしていることをある程度理解できました。しかし、次の行は詳細にどういう意味ですか? 次のように書かれた JavaScript を見たことがありません。
brw_obj["e"+type+func] = func;
brw_obj[type+func] = function() {
brw_obj["e"+type+func]( window.event );
}
brw_obj.attachEvent( "on"+type, brw_obj[type+func] );
また、このコードはブラウザやオブジェクトの検出に適していますか?
私はスクリプトを書いていますが、最新のブラウザーだけでなく、古いブラウザーでも確実に実行されるようにする必要があります。私が理解していることから、最新のブラウザーのほとんどは addEventListener をサポートし、IE は attachEvent をサポートしています。古いブラウザーがいずれかをサポートしているかどうかはわかりません。
コメントアウトされた行に関する限り:
/* else if (brw_obj.captureEvents) {
brw_obj.captureEvents(Event.CLICK); // only works with FF
}
*/
captureEvents は古い Firefox ブラウザーでのみサポートされていることをどこかで読みました。コード全体のコンテキストで、これらの行は必要ですか?
あらゆる洞察に満ちたコメント、批評、アドバイスを歓迎します。ありがとう!:)