私の仕事は、完全に有効で冗長ではないHTMLを生成するWYSIWYGエディターを書くことでした。 範囲は不可欠でした。 インターネット上の完成したものから、特定のJorgen Horstinkの動作しないスクリプトのみを見つけたため、IE用のRangeはゼロから作成する必要がありました。
スクリプトは非常に重いことが判明しました(41 kB)が、スペース、タブを削除し、変数の名前を短くすると、最大15 kBまで圧縮できると思います。 Exploreraの癖により、スクリプトは3回完全に書き換えられました。 IEのRangeの作業を模倣するオブジェクトは、既製のWYSIWYGエディターでテストされ、その作業は完全にRangeに基づいています。
作業の欠点の中で、私は次のことに注意することができます。
- DOMで何らかの操作(挿入や削除など)が行われた場合、範囲のstartOffsetまたはendOffsetの値は正しくない場合があります。 しかし、これは、特に他のブラウザではそのような問題があるため(特にOperaで)、スクリプトの正しいアクションのシーケンスを単にバイパスします。
var range = new Range (document.selection.createRange()); // range
またはいつものように
var range = document.createRange(); // , range
ここからオブジェクトをダウンロードできます: IEのW3C範囲
スクリプトがあなたにとって有用であれば、私はうれしいです。