0

互換モードの IE でレンダリングされているページのブックマークレットを作成しようとしています。私はページのソースを制御できないため、doctype を変更するように指示しても機能しません。

とにかく、クラスで要素を取得しようとしていますが、getElementsByClassName と querySelectorAll は互換モードでは機能しないようです。ドムを歩く以外にこれを行う他の方法はありますか?

4

1 に答える 1

3

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 を「歩く」ことに依存しています。

于 2013-03-28T20:06:46.680 に答える