XML DOM - Range 对象

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

Range ਆਬਜੈਕਟ

Range ਆਬਜੈਕਟ ਦਸਤਾਵੇਜ਼ ਦੇ ਨਿਰੰਤਰ ਖੇਤਰ ਨੂੰ ਪ੍ਰਤੀਨਿਧਤ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਉਸ ਦੇ ਬਰਾਉਜ਼ਰ ਵਿੰਡੋ ਵਿੱਚ ਮਨੁੱਖੀ ਉਪਯੋਗਕਰਤਾ ਨੇ ਮਾਉਸ ਨਾਲ ਚੋਣ ਕੀਤੇ ਗਏ ਖੇਤਰ।

ਜੇਕਰ ਇੱਕ ਪ੍ਰਵਾਨਗੀ Range ਮੋਡੂਲ ਸਮਰੱਥ ਹੈ ਤਾਂ Document ਆਬਜੈਕਟਦਾਇਰਾ ਨਾਮ ਦਾ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਹੈ createRange() ਮੱਥੋਦਦੁਆਰਾ ਬੁਲਾਇਆ ਜਾ ਸਕਦਾ ਹੈ ਕਿ ਨਵੇਂ Range ਆਬਜੈਕਟ ਬਣਾਏ ਜਾਣ。

ਧਿਆਨ:IE ਨੇ ਅਸੰਗਤ ਵਿੱਚ Document.createRange() ਮੱਥੋਦ ਨਿਰਧਾਰਿਤ ਕੀਤਾ ਹੈ, ਜਿਸ ਵਾਲੇ ਆਬਜੈਕਟ ਨੇ Range ਇੰਟਰਫੇਸ ਨਾਲ ਸਮਾਨ ਹੁੰਦੇ ਹਨ, ਪਰ ਸੰਗਤ ਨਹੀਂ ਹਨ。

Range ਇੰਟਰਫੇਸ ਨੇ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ‘ਚੋਣ’ ਕੀਤੇ ਗਏ ਖੇਤਰ ਲਈ ਬਹੁਤ ਸਾਰੇ ਮੱਥੋਦਾਂ ਨਿਰਧਾਰਿਤ ਕੀਤੇ ਹਨ, ਇਸ ਤੋਂ ਇਲਾਵਾ ਕੁਝ ਮੱਥੋਦਾਂ ਨੂੰ ਚੋਣ ਖੇਤਰ ਵਿੱਚ ਕਟ ਕੇ ਕਾਪ ਕਰਨ ਅਤੇ ਚੇਪੇ ਕਰਨ ਦੇ ਕੰਮਾਂ ਲਈ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ。

Range ਇੰਟਰਫੇਸ ਦੇ ਪੈਰਾਮੀਟਰਾਂ ਨੇ ਦਾਇਰੇ ਦੇ ਬੰਦਰੇ ਨੋਡ ਅਤੇ ਹਾਰਕੋਚ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਇਹ ਮੱਥੋਦਾਂ ਦਾਇਰੇ ਦੇ ਬੰਦਰੇ ਨੂੰ ਸੈਟ ਕਰਨ ਦੀ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ। ਧਿਆਨ ਦੇਵੇ ਕਿ ਦਾਇਰੇ ਦੇ ਬੰਦਰੇ ਨੂੰ ਸੈਟ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ Document ਜਾਂ DocumentFragment ਆਬਜੈਕਟਵਿੱਚ ਨੋਡਾਂ ਵਾਲੇ। ਜਦੋਂ ਦਾਇਰੇ ਦੇ ਬੰਦਰੇ ਨੋਡ ਨਿਰਧਾਰਿਤ ਹੋ ਜਾਣ ਤਾਂ deleteContents()、extractContents()、cloneContents() ਅਤੇ insertNode() ਮੱਥੋਦਾਂ ਨਾਲ ਕਟ ਕੇ ਕਾਪ ਕਰਨ, ਨਕਲ ਕਰਨ ਅਤੇ ਚੇਪੇ ਕਰਨ ਦੀਆਂ ਕੰਮੀਆਂ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ。

ਜਦੋਂ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਪਰਿਵਰਤਿਤ ਕਰਨ ਦੀ ਕੰਮੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਤਾਂ ਉਸ ਦਾਸਤਾਵੇਜ਼ ਦਾ ਇੱਕ ਹਿੱਸਾ ਦਾ ਸਾਰੇ Range ਆਬਜੈਕਟ ਬਦਲ ਜਾਣਗੇ (ਜੇਕਰ ਜ਼ਰੂਰੀ ਹੋਵੇ ਤਾਂ), ਤਾਕਿ ਉਹ ਆਪਣੇ ਬੰਦਰੇ ਨੋਡਾਂ ਨੂੰ ਮਹਤਵਪੂਰਨ ਰੱਖ ਸਕਣ ਅਤੇ ਉਹ (ਮੰਗਾਂ ਦੇ ਅਨੁਸਾਰ) ਉਸ ਨੂੰ ਦਸਤਾਵੇਜ਼ ਦਾ ਇੱਕ ਹਿੱਸਾ ਪ੍ਰਤੀਨਿਧਤ ਕਰ ਸਕਣ।

ਸ਼ਬਦਾਂ: ਦਾਇਰਾ, ਬੰਦਰੇ ਨੋਡ ਅਤੇ ਹਾਰਕੋਚ

ਇੱਕ ਦਾਇਰਾ ਦੋ ਬੰਦਰੇ ਨੋਡਾਂ ਵਾਲਾ ਹੁੰਦਾ ਹੈ, ਜਿਵੇਂ ਇੱਕ ਸ਼ੁਰੂ ਸਥਾਨ ਅਤੇ ਇੱਕ ਸਮਾਪਤ ਸਥਾਨ। ਹਰੇਕ ਬੰਦਰੇ ਨੋਡ ਨੂੰ ਇੱਕ ਨੋਡ ਅਤੇ ਉਸ ਨੋਡ ਦਾ ਹਾਰਕੋਚ ਨਾਮ ਨਾਲ ਸਪਸ਼ਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਨੋਡ ਜਿਆਦਾਤਰ Element ਨੋਡਅਤੇDocument ਨੋਡਜਾਂ Text ਨੋਡਕੇਂਦਰਨ ਅਤੇ Document ਨੋਡ ਲਈ, ਹਾਰਕੋਚ ਨੋਡ ਦੇ ਬੱਚੇ ਨੋਡ ਹੁੰਦਾ ਹੈ। ਹਾਰਕੋਚ ਸ਼ੂਨਯ ਹੋਣ ਤਾਂ ਬੰਦਰੇ ਨੋਡ ਨੋਡ ਦੇ ਪਹਿਲੇ ਬੱਚੇ ਨੋਡ ਤੋਂ ਪਹਿਲਾਂ ਹੁੰਦਾ ਹੈ। ਹਾਰਕੋਚ 1 ਹੋਣ ਤਾਂ ਬੰਦਰੇ ਨੋਡ ਨੋਡ ਦੇ ਪਹਿਲੇ ਬੱਚੇ ਨੋਡ ਤੋਂ ਬਾਅਦ, ਦੂਜੇ ਬੱਚੇ ਨੋਡ ਤੋਂ ਪਹਿਲਾਂ ਹੁੰਦਾ ਹੈ। ਪਰ ਜੇਕਰ ਬੰਦਰੇ ਨੋਡ Text ਨੋਡ ਹੋਵੇ ਤਾਂ ਹਾਰਕੋਚ ਟੈਕਸਟ ਵਿੱਚ ਦੋ ਅੱਖਰਾਂ ਦਰਮਿਆਨ ਦਾ ਸਥਾਨ ਹੁੰਦਾ ਹੈ。

ਰੈਂਜ ਆਬਜੈਕਟ ਦੀਆਂ ਸਥਾਈਆਂ

ਇਹ ਸਥਾਈ ਰੈਂਜ ਆਬਜੈਕਟ ਦੇ ਬੰਦਰੂ ਬਿੰਦੂਆਂ ਨੂੰ ਤੁਲਨਾ ਕਰਨ ਲਈ ਨਿਰਧਾਰਿਤ ਕਰਦੇ ਹਨ。

ਇਹ ਕਿਵੇਂ ਤੁਲਨਾ ਕਰਨ ਦੇ ਲਈ compareBoundaryPoints() ਮੱਥਦਾਨ ਦੇ ਪਾਰਾਮੀਟਰ ਹਨ how ਪਾਰਾਮੀਟਰ ਦੇ ਲਾਗੂ ਮੁੱਲ:

ਸਥਾਈ ਵਰਣਨ
START_TO_START ਨਿਰਧਾਰਿਤ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਬਿੰਦੂ ਨੂੰ ਮੌਜੂਦਾ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਬਿੰਦੂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ。
START_TO_END ਨਿਰਧਾਰਿਤ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਬਿੰਦੂ ਨੂੰ ਮੌਜੂਦਾ ਰੈਂਜ ਦੇ ਸਮਾਪਤ ਬਿੰਦੂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ。
END_TO_END ਨਿਰਧਾਰਿਤ ਰੈਂਜ ਦੇ ਸਮਾਪਤ ਬਿੰਦੂ ਨੂੰ ਮੌਜੂਦਾ ਰੈਂਜ ਦੇ ਸਮਾਪਤ ਬਿੰਦੂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ。
END_TO_START ਨਿਰਧਾਰਿਤ ਰੈਂਜ ਦੇ ਸਮਾਪਤ ਬਿੰਦੂ ਨੂੰ ਮੌਜੂਦਾ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਬਿੰਦੂ ਨਾਲ ਤੁਲਨਾ ਕਰੋ。

ਰੈਂਜ ਆਬਜੈਕਟ ਦੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ

ਧਿਆਨ:ਸਾਰੀਆਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਸਿਰਫ ਪੜ੍ਹਣ ਵਾਲੀਆਂ ਹਨ, ਇਨ੍ਹਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਨੂੰ ਸੈਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਅਤੇ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਅਤੇ ਸਮਾਪਤ ਬਿੰਦੂਆਂ ਨੂੰ ਬਦਲਣ ਲਈ setEnd() ਅਤੇ setStart() ਮੱਥਦਾਨ ਚਲਾਉਣਾ ਹੈ。

ਧਿਆਨ:detach() ਮੱਥਦਾਨ ਚਲਾਉਣ ਤੋਂ ਬਾਅਦ ਇਨ੍ਹਾਂ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੀ ਕੋਈ ਵੀ ਪੜ੍ਹਣ ਵਾਲੀ ਕੋਸ਼ਿਸ਼ ਨਾਲ INVALID_STATE_ERR ਦਾ ਕੋਡ ਫੈਲੇਗਾ。 DOMException 异常

ਵਿਸ਼ੇਸ਼ਤਾ ਵਰਣਨ
collapsed ਜੇਕਰ ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਅਤੇ ਸਮਾਪਤ ਬਿੰਦੂ ਦਸਤਾਵੇਜ਼ ਵਿੱਚ ਇੱਕ ਹੀ ਸਥਾਨ 'ਤੇ ਹਨ ਤਾਂ ਇਹ ਸਹੀ ਹੈ, ਯਾਨੀ ਰੈਂਜ ਖਾਲੀ ਹੈ ਜਾਂ ਸਮਾਪਤ ਹੈ。
commonAncestorContainer ਰੈਂਜ ਦੇ ਸ਼ੁਰੂ ਅਤੇ ਸਮਾਪਤ ਬਿੰਦੂਆਂ ਦਾ ਸਮਾਨ ਪੁਰਖ (ਉਨ੍ਹਾਂ ਦੇ ਮੂਲ ਨੋਟਾਂ) ਅਤੇ ਸਭ ਤੋਂ ਗਹਿਰਾ ਨਾਮਜਾਦ Document ਨੋਟ
endContainer ਸਮਾਪਤ ਬਿੰਦੂ ਨੂੰ ਸਮਝਾਉਣ ਵਾਲਾ Document ਨੋਟ
endOffset endContainer ਵਿੱਚ ਸਮਾਪਤ ਹੋਣ ਵਾਲੇ ਬਿੰਦੂ ਦਾ ਸਥਾਨ
startContainer ਸ਼ੁਰੂ ਬਿੰਦੂ ਨੂੰ ਸਮਝਾਉਣ ਵਾਲਾ Document ਨੋਟ
startOffset startContainer ਵਿੱਚ ਸ਼ੁਰੂ ਹੋਣ ਵਾਲੇ ਬਿੰਦੂ ਦਾ ਸਥਾਨ

ਰੈਂਜ ਆਬਜੈਕਟ ਦੇ ਮੱਥਦਾਨ

ਧਿਆਨ:ਧਿਆਨ: ਜੇਕਰ ਰੈਂਜ ਦਾ detach() ਮੱਥਦਾਨ ਚਲਾਇਆ ਗਿਆ ਹੈ ਤਾਂ ਉਸ ਤੋਂ ਬਾਅਦ ਰੈਂਜ ਆਬਜੈਕਟ ਦੇ ਕੋਈ ਵੀ ਮੱਥਦਾਨ ਚਲਾਉਣ ਨਾਲ INVALID_STATE_ERR ਦਾ ਕੋਡ ਫੈਲੇਗਾ。 DOMException 异常

ਮੱਥਦਾਨ ਵਰਣਨ
cloneContents() ਨਵਾਂ DocumentFragment ਆਬਜੈਕਟ ਵਾਪਸ ਦੇਵੇ ਜੋ ਇਸ ਦਾ ਨਕਲ ਹੈ ਅਤੇ ਇਹ ਨਕਲ ਰੈਂਜ ਦਾ ਪ੍ਰਤੀਨਿਧਤ ਕਰਦਾ ਹੈ。
cloneRange() ਇੱਕ ਨਵਾਂ Range ਆਬਜੈਕਟ ਬਣਾਓ ਜੋ ਮੌਜੂਦਾ Range ਆਬਜੈਕਟ ਦੇ ਨਾਲ ਮੰਗਣ ਵਾਲੇ ਦਸਤਾਵੇਜ਼ ਖੇਤਰ ਨੂੰ ਪ੍ਰਤੀਨਿਧਤ ਕਰਦਾ ਹੈ。
collapse() 折叠该范围,使它的边界点重合。
compareBoundaryPoints() 比较指定范围的边界点和当前范围的边界点,根据它们的顺序返回 -1、0 和 1。比较哪个边界点由它的第一个参数指定,它的值必须是前面定义的常量之一。
deleteContents() 删除当前 Range 对象表示的文档区域。
detach() 通知实现不再使用当前的范围,可以停止跟踪。如果调用了范围的这个方法,那么接下来调用的该范围任何方法都会抛出代码为 INVALID_STATE_ERR 的 DOMException 异常
extractContents() 删除当前范围表示的文档区域,并且以 DocumentFragment 对象的形式返回那个区域的内容。该方法和 cloneContents() 方法与 deleteContents() 方法的组合很相似。
insertNode() ਇਸ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਪ੍ਰਵੇਸ਼ ਕਰੋ。
selectNode() ਇਸ ਦੇ ਦਾਇਰੇ ਦੇ ਬੰਦੂਕ ਨੂੰ ਸੈੱਟ ਕਰੋ, ਤਾਕਿ ਇਹ ਨਿਰਧਾਰਿਤ ਅਤੇ ਇਸ ਦੇ ਸਾਰੇ ਵੰਸ਼ਜ ਨੂੰ ਸ਼ਾਮਲ ਕਰੇ。
selectNodeContents() ਇਸ ਦੇ ਦਾਇਰੇ ਦੇ ਬੰਦੂਕ ਨੂੰ ਸੈੱਟ ਕਰੋ, ਤਾਕਿ ਇਹ ਨਿਰਧਾਰਿਤ ਨੂੰ ਸ਼ਾਮਲ ਕਰੇ, ਪਰ ਨਿਰਧਾਰਿਤ ਨੂੰ ਨਹੀਂ ਕਰੇ。
setEnd() ਇਸ ਦਾ ਸਮਾਪਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਨਿਰਧਾਰਿਤ ਆਫਸੇ ਵਿੱਚ ਸੈੱਟ ਕਰੋ。
setEndAfter() ਇਸ ਦਾ ਸਮਾਪਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਅੱਗੇ ਦੇ ਨਾਲ ਪਈ ਨੂੰ ਸੈੱਟ ਕਰੋ。
setEndBefore() ਇਸ ਦਾ ਸਮਾਪਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਪਿੱਛੇ ਦੇ ਨਾਲ ਪਈ ਨੂੰ ਸੈੱਟ ਕਰੋ。
setStart() ਇਸ ਦਾ ਸ਼ੁਰੂਆਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਨਿਰਧਾਰਿਤ ਆਫਸੇ ਵਿੱਚ ਸੈੱਟ ਕਰੋ。
setStartAfter() ਇਸ ਦਾ ਸ਼ੁਰੂਆਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਅੱਗੇ ਦੇ ਨਾਲ ਪਈ ਨੂੰ ਸੈੱਟ ਕਰੋ。
setStartBefore() ਇਸ ਦਾ ਸ਼ੁਰੂਆਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਪਿੱਛੇ ਦੇ ਨਾਲ ਪਈ ਨੂੰ ਸੈੱਟ ਕਰੋ。
surroundContents() ਇਸ ਨੂੰ ਸ਼ੁਰੂਆਤੀ ਦਾਇਰੇ ਵਿੱਚ ਪਈ ਨੂੰ ਪ੍ਰਵੇਸ਼ ਕਰੋ, ਫਿਰ ਸਾਰੇ ਨੂੰ ਨਵੇਂ ਪ੍ਰਵੇਸ਼ ਕਰਨ ਵਾਲੇ ਨੂੰ ਉਸ ਦੇ ਵੰਸ਼ਜ ਬਣਾ ਦਿਓ。
toString() ਇਸ ਦਾਇਰੇ ਦੇ ਪੂਰੇ ਟੈਕਸਟ ਨੂੰ ਪ੍ਰਦਾਨ ਕਰਨ ਵਾਲੇ ਪੂਰੇ ਦਾਇਰੇ ਦਾ ਪੂਰਣ ਟੈਕਸਟ ਦਾ ਪ੍ਰਦਾਨ ਕਰੋ。