例如下面這個模樣的例子:
2011-04-12 負責調查切爾諾貝利核事故對人與環境造成影響的俄科學家亞布羅科夫博士指出,因福島核電站使用的燃料較切爾諾貝利核電站多,且有反應堆使用了含有高毒性的钚的燃料,因此"福島核電站事故可能會比切爾諾貝利帶來更嚴重的后果"。上面選中狀態的那些文字就可以轉換成Range對象(下面會詳細講述)。通過Range對象你可以找到Range的起始點和結束點,如果你實在有心,還可以刪除或是復制這些內容,或是用其他文字替換,甚至是簡單的HTML。
上面的例子可以說是最簡單的Range對象的例子,因為其只包含了文字。而實際上,Range對象也是可以包含HTML代碼內容的,例如下面這個示例:
<time>2011-04-12</time> <p>據日本廣播協會電視臺12日報道,日本經濟產業省原子能安全保安院決定將福島第一核電站核泄漏事故等級提高至7級。這使日本核泄漏事故等級與蘇聯切爾諾貝利核電站核泄漏事故等級相同。</p> <p>負責調查切爾諾貝利核事故對人與環境造成影響的俄科學家亞布羅科夫博士指出,因福島核電站使用的燃料較切爾諾貝利核電站多,且有反應堆使用了含有高毒性的钚的燃料,因此"福島核電站事故可能會比切爾諾貝利帶來更嚴重的后果"。</p>同樣的,Range對象被創建,且包含HTML,現在的問題是選擇的內容正好跨過了楚河和漢界(跨標簽),如果就單純的論選擇的內容的話,應該如下:
泄漏事故等級與蘇聯切爾諾貝利核電站核泄漏事故等級相同。</p> <p>負責調查切爾諾貝
顯然,上面的HTML屬于1級殘廢,基本無效。然而幸運的是,所有的瀏覽器都會自動調整HTML片段使其有效,就像變成下面這樣:
<p>泄漏事故等級與蘇聯切爾諾貝利核電站核泄漏事故等級相同。</p> <p>負責調查切爾諾貝</p>
可以看到,瀏覽器自動補全了一定數目的HTML來讓Range有效。如果你復制或是移動Range,你所復制或移動的HTML內容一定是有效的。
在真正操刀JavaScript之前我們需要大致知道Range對象的瀏覽器兼容性情況。實際上,問題是比較麻煩的,因為至少有3種類似Range對象,且你有必要全部理解。先展示詳細的兼容性情況表:
支持:
不支持:
部分支持:
| Explorer 6/7 | Firefox 2 | Safari 1.3 | Opera 9 | |
|---|---|---|---|---|
| cloneContents() | ![]() | ![]() | ![]() | ![]() |
| cloneRange() | ![]() | ![]() | ![]() | ![]() |
| collapse() | tbd | tbd | tbd | tbd |
| collapsed | ![]() | ![]() | ![]() | ![]() |
| commonAncestorContainer | ![]() | ![]() | ![]() | ![]() |
| compareBoundaryPoints() | ![]() | ![]() | ![]() | ![]() |
| comparePoint() 主站蜘蛛池模板: 安仁县| 闵行区| 昌黎县| 格尔木市| 平利县| 古浪县| 静宁县| 泰和县| 德江县| 静海县| 淮安市| 武隆县| 噶尔县| 临夏县| 文安县| 抚顺县| 大宁县| 南投市| 敦化市| 英吉沙县| 霍邱县| 新河县| 鹤峰县| 和顺县| 南召县| 平利县| 桑日县| 浦城县| 凤台县| 新干县| 繁昌县| 九台市| 樟树市| 邵阳县| 常德市| 新民市| 灵宝市| 临漳县| 龙井市| 岱山县| 咸丰县| |