XML DOM - Range 对象

Range 对象表示文档中的连续范围。

Range 对象

Range 对象表示文档的连续范围区域,如用户在浏览器窗口中用鼠标拖动选中的区域。

如果一个实现支持 Range 模块,那么 Document 对象就定义了 createRange() 方法,调用它可创建新的 Range 对象。

గమనిక:IE 定义了不兼容的 Document.createRange() 方法,它返回的对象与 Rang 接口相似,但不兼容。

Range ఇంటర్ఫేస్ అనేది డాక్యుమెంట్ లో 'ఎంపిక' అయిన ప్రాంతానికి అనేక పద్ధతులను నిర్వహిస్తుంది, మరియు అది ఎంపిక ప్రాంతంలో కట్ లేదా ప్లాస్ట్ పరిణామాలను అమలు చేయడానికి కొన్ని పద్ధతులను కూడా అందిస్తుంది.

Range ఇంటర్ఫేస్ పరిమితులు పరిధి యొక్క సరిహద్దు నోడ్స్ మరియు ఆఫ్సెట్లను పొందడానికి మాదిరి మంచి పద్ధతులను అందిస్తాయి. ఇది పరిధి సరిహద్దులను నిర్వహించడానికి మాదిరి మంచి పద్ధతులను అందిస్తుంది. గమనించండి, పరిధి సరిహద్దులను సెట్ చేయవచ్చు Document లేదా DocumentFragment ఆబ్జెక్ట్పరిధి సరిహద్దు పాయింట్లను నిర్వచించినప్పుడు, deleteContents()、extractContents()、cloneContents() మరియు insertNode() మాదిరి మంచి పద్ధతులను ఉపయోగించవచ్చు మరియు కట్ లేదా కాపీ మరియు ప్లాస్ట్ అనే పరిణామాలను అమలు చేయవచ్చు.

డాక్యుమెంట్ లో జోడించడం లేదా తొలగించడం ద్వారా మార్పు చేసినప్పుడు, డాక్యుమెంట్ కి సంబంధించిన అంశంగా పరిధి ఆబ్జెక్ట్లు అన్నిటికీ మార్పు చేయబడతాయి (అవసరమైతే), వాటి సరిహద్దు పాయింట్లను ప్రభావంతంగా పరిపాలించడానికి మరియు వాటిని ప్రారంభించిన డాక్యుమెంట్ కంటెంట్ను ప్రారంభించడానికి ప్రయత్నిస్తాయి.

పదం: పరిధి, సరిహద్దు పాయింట్ మరియు ఆఫ్సెట్

ఒక పరిధికి రెండు సరిహద్దు పాయింట్లు ఉన్నాయి, అవి ఒక ప్రారంభ పాయింట్ మరియు ఒక ముగింపు పాయింట్. ప్రతి సరిహద్దు పాయింట్ ఒక నోడ్ మరియు ఆ నోడ్ కు సంబంధించిన ఆఫ్సెట్ ద్వారా నిర్వచించబడుతుంది. ఆ నోడ్ అత్యంత సాధారణంగా ఎలిమెంట్ నోడ్డాక్యుమెంట్ నోడ్లేదా టెక్స్ట్ నోడ్ఎలిమెంట్ నోడ్ మరియు డాక్యుమెంట్ నోడ్ కు సంబంధించినది, ఆఫ్సెట్ అనేది ఆ నోడ్ కు సంబంధించిన కింది నోడ్ అని అర్థం. ఆఫ్సెట్ 0 అయితే, అది అదే నోడ్ కు సంబంధించిన కింది నోడ్ పూర్వం వెంబడి బిందువు ఉంది. ఆఫ్సెట్ 1 అయితే, అది అదే నోడ్ కు సంబంధించిన కింది నోడ్ తర్వాత, రెండవ నోడ్ పూర్వం వెంబడి బిందువు ఉంది. కానీ, బిందువు నోడ్ ఉన్నప్పుడు, ఆఫ్సెట్ అనేది టెక్స్ట్ లో రెండు అక్షరాల మధ్య స్థానానికి సూచిస్తుంది.

Range 对象的常量

这些常量指定了如何比较 Range 对象的边界点。

వాటిని compareBoundaryPoints() పద్ధతి యొక్క how పారామిటర్స్ యొక్క నీతిగత విలువలు:

కనిష్టం వివరణ
START_TO_START స్పెసిఫైడ్ రేంజ్ ప్రారంభ పోస్ట్ తో ప్రస్తుత రేంజ్ ముగింపు పోస్ట్ తో పోల్చండి.
START_TO_END ప్రస్తుత రేంజ్ ముగింపు పోస్ట్ తో స్పెసిఫైడ్ రేంజ్ ప్రారంభ పోస్ట్ తో పోల్చండి.
END_TO_END స్పెసిఫైడ్ రేంజ్ ముగింపు పోస్ట్ తో ప్రస్తుత రేంజ్ ముగింపు పోస్ట్ తో పోల్చండి.
END_TO_START ప్రస్తుత రేంజ్ ప్రారంభ పోస్ట్ తో స్పెసిఫైడ్ రేంజ్ ముగింపు పోస్ట్ తో పోల్చండి.

రేంజ్ ఆబ్జెక్ట్ గుణాలు

గమనిక:అన్ని గుణాలు ఓన్లీ రీడ్ గుణాలు, ఈ గుణాలను సెట్ చేయడం ద్వారా రేంజ్ ప్రారంభ మరియు ముగింపు పోస్ట్ మార్చలేదు, ఈ కార్యకలాపాన్ని నిర్వహించడానికి setEnd() మరియు setStart() పద్ధతులను కాల్ చేయవలసి ఉంటుంది.

గమనిక:detach() పద్ధతిని కాల్ చేసిన తర్వాత, ఈ గుణాలపై ఏ చదువు కార్యకలాపాన్ని కాల్ చేసినా INVALID_STATE_ERR కోడ్ తో రిజర్వు చేస్తుంది. DOMException అనేది ప్రతికూలత సమస్య విషయం..

గుణాలు వివరణ
collapsed రేంజ్ ప్రారంభ మరియు ముగింపు పోస్ట్ డాక్యుమెంట్ లో ఒకే స్థానంలో ఉన్నట్లయితే సమానం, అంటే రేంజ్ ఖాళీ లేదా కలిపిన ఉంటుంది.
commonAncestorContainer రేంజ్ ప్రారంభ మరియు ముగింపు పోస్ట్ యొక్క (అవి వారి పూర్వీక నోడ్లు ఉన్నాయి) ప్రత్యక్షంగా నిర్మించబడిన డాక్యుమెంట్ నోడ్.
endContainer రేంజ్ ముగింపు పోస్ట్ ను కలిగి ఉన్న డాక్యుమెంట్ నోడ్.
endOffset endContainer లోని ముగింపు పోస్టని స్థానం.
startContainer రేంజ్ ప్రారంభ పోస్ట్ ను కలిగి ఉన్న డాక్యుమెంట్ నోడ్.
startOffset startContainer లోని ప్రారంభ పోస్టని స్థానం.

రేంజ్ ఆబ్జెక్ట్ పద్ధతులు

గమనిక:రేంజ్ యొక్క detach() పద్ధతిని కాల్ చేసిన అప్పుడు, రేంజ్ ఆబ్జెక్ట్ యొక్క ఏ పద్ధతిని కాల్ చేసినా అది INVALID_STATE_ERR కోడ్ తో రిజర్వు చేస్తుంది. DOMException అనేది ప్రతికూలత సమస్య విషయం..

పద్ధతి వివరణ
cloneContents() కొత్త డాక్యుమెంట్ ఫ్రాగ్మెంట్ ఆబ్జెక్ట్ తిరిగి ఇవ్వండి, ఇది ప్రస్తుత రేంజ్ ప్రస్తుత డాక్యుమెంట్ రీజన్ యొక్క కాపీ ను కలిగి ఉంటుంది.
cloneRange() ఒక కొత్త రేంజ్ ఆబ్జెక్ట్ సృష్టించండి, ఇది ప్రస్తుత రేంజ్ ఆబ్జెక్ట్ ప్రస్తుత డాక్యుమెంట్ రీజన్ ను ప్రతినిధీకరిస్తుంది.
collapse() 折叠该范围,使它的边界点重合。
compareBoundaryPoints() 比较指定范围的边界点和当前范围的边界点,根据它们的顺序返回 -1、0 和 1。比较哪个边界点由它的第一个参数指定,它的值必须是前面定义的常量之一。
deleteContents() 删除当前 Range 对象表示的文档区域。
detach() 通知实现不再使用当前的范围,可以停止跟踪。如果调用了范围的这个方法,那么接下来调用的该范围任何方法都会抛出代码为 INVALID_STATE_ERR 的 DOMException అనేది ప్రతికూలత సమస్య విషయం..
extractContents() ప్రస్తుత పరిధి ప్రదర్శించే డాక్యుమెంట్ రీజన్ ని తొలగించి, అప్పుడు ఆ రీజన్ యొక్క విషయాన్ని DocumentFragment ఆబ్జెక్ట్ రూపంలో తిరిగి ప్రదర్శించు. ఈ మాదిరి పద్ధతిని క్లోన్ కంటెంట్ మరియు డిలెట్ కంటెంట్ పద్ధతులతో పరిణామాలు కలిగించవచ్చు.
insertNode() పేర్కొన్న నోడ్ని పరిధి ప్రారంభంలో ప్రవేశపెడతారు.
selectNode() పరిధి రహిమానికి నిర్ధారించి, పేర్కొన్న నోడ్ని మరియు దాని అన్ని పరివారాలను చుట్టివుంచి.
selectNodeContents() పరిధి రహిమానికి నిర్ధారించి, పేర్కొన్న నోడ్ని మరియు దాని అన్ని పరివారాలను చుట్టివుంచి, అయితే పేర్కొన్న నోడ్ని స్వయం చుట్టబడదు.
setEnd() పేర్కొన్న నోడ్ని మరియు ఆఫ్సెట్ని పేర్కొన్న నోడ్ని తరువాతి దగ్గరగా పరిధి ప్రారంభంలో నిర్ధారించు.
setEndAfter() పేర్కొన్న నోడ్ని తరువాతి దగ్గరగా పరిధి ప్రారంభంలో నిర్ధారించు.
setEndBefore() పేర్కొన్న నోడ్ని ముందుకు దగ్గరగా పరిధి ప్రారంభంలో నిర్ధారించు.
setStart() పేర్కొన్న నోడ్ని ప్రత్యేక ఆఫ్సెట్లో పరిధి ప్రారంభంలో నిర్ధారించు.
setStartAfter() పేర్కొన్న నోడ్ని తరువాతి దగ్గరగా పరిధి ప్రారంభంలో నిర్ధారించు.
setStartBefore() పేర్కొన్న నోడ్ని ముందుకు దగ్గరగా పరిధి ప్రారంభంలో నిర్ధారించు.
surroundContents() పేర్కొన్న నోడ్ని పరిధి ప్రారంభంలో ప్రవేశపెడతారు, అప్పుడు పరిధిలోని అన్ని నోడ్ల ప్రాతిపదికన ప్రారంభం నోడ్ని ప్రవేశపెడతారు.
toString() ఈ పరిధి ప్రదర్శించే డాక్యుమెంట్ రీజన్ యొక్క ప్రస్తుత టెక్స్ట్ విషయాన్ని తిరిగి ప్రదర్శించు.