互換モードの IE でレンダリングされているページのブックマークレットを作成しようとしています。私はページのソースを制御できないため、doctype を変更するように指示しても機能しません。
とにかく、クラスで要素を取得しようとしていますが、getElementsByClassName と querySelectorAll は互換モードでは機能しないようです。ドムを歩く以外にこれを行う他の方法はありますか?
互換モードの IE でレンダリングされているページのブックマークレットを作成しようとしています。私はページのソースを制御できないため、doctype を変更するように指示しても機能しません。
とにかく、クラスで要素を取得しようとしていますが、getElementsByClassName と querySelectorAll は互換モードでは機能しないようです。ドムを歩く以外にこれを行う他の方法はありますか?
querySelector を実行できないブラウザ専用のユーティリティを作成できます。この例ではノードリストではなく配列が返されることに注意してください。
function classReunion(classname, tag, parent){
var A= [], elements, L, who,
rx= RegExp(/'\\b'+classname+'\\b');
tag= tag || '*';
parent= parent || document;
elements= parent.getElementsByTagName(tag);
L= elements.length;
while(L){
who= elements[--L];
if(rx.test(who.className)) A.push(who);
}
return A;
}
古いブラウザーは、クラスごとに要素のグループを収集するために、DOM を「歩く」ことに依存しています。