热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Iframe选区

FF——————————–直接使用document.creatRange()来创建一个选区;默认是空的;使用selectNode(obj)来代替moveToElementText

FF

——————————–

直接使用 document.creatRange() 来创建一个选区;

默认是空的;

使用selectNode(obj)来代替moveToElementText();

反白依赖新对象 winodw.getSeletion();

有rangeCount计数属性;

有removeAllRange()方法;

这个对象有一个 addRange(rangeObj) 方法来取代 IE 中的 select()

截取文本串

setStart(文本节点,偏移量)

setEnd(文本节点,偏移量)

::在 IE 中是moveStart(单位,偏移量) 针对已有焦点区

::FF 中是以两个文本节点的跨度来生成焦点区

有时候锚取的文本将是跨节点的,系统自动生成一个fragment来维持html良好格式,

锚取内容后,可以对内容进行一些操作:

deleteContents();删除

cloneContents();克隆

extractContents();抽取

2级DOM定义了一个createRange()方法,如果是按照DOM此标准的浏览器(IE并不是支持此标准的,但是IE里的属性或方法却远比标准中定义的多得多),它属于document对象,所以创建一个range对象要这样做:

var oRange = document.createRange();  
如果你要检测你的浏览器是否支持此标准Range对象,可以用hasFeature()方法来检测: var supportsDOMRanges = document.implementation.hasFeature(“Range”, “2.0”);   
if (supportsDOMRange) {   
var oRange = document.createRange();   
//range code here   
}
———————————————————
最简单用Range进行选择,用selectNode()或者selectNodeContents()方法,这两个方法只有一个接收参数,一个DOM节点。
selectNode()方法选择全部节点,包括它的孩子,而selectNodeContents()选择的节点只是它的孩子。
—————————————————-
当你创建了一个Range对象时,Range实例就会有以下的属性:
startContainer — 返回range对象从何开始的节点对象(父节点的第一个节点)
startOffset — 返回Range开始的偏移量(offset),如果startContainer是一个文本节点,注释节点,或者是CDATA节点,这个属性返回文本的偏移量,否则返回第一个节点的索引。
endCOntainer — 返回Range对象最后一个节点对象(父节点的最后一个节点)
endOffset — 返回Range结束时的偏移量(offset)特性与startOffset相同。
commonAncestorContainer — 返回第一个包含该Range对象的节点。
—————————————
Range中还有一些其它的方法:
setStartBefore(node) — 以特定节点为参照确定起始锚点
setStartAfter(node) — 同上
setEndBefore — 以特定节点为参照确定终结锚点
setEndAfter — 同上
——————————
surroundContents(node) 进行封装 tag 完成格式化焦点文本的任务
insertNode(node) 插入节点,完成添加文本的任务

转:https://www.cnblogs.com/jazzka702/archive/2009/07/26/1531240.html


推荐阅读
author-avatar
N个小灰流_701
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有