XML DOM - Range অবজ্জীবিত

Range অবজ্জীবিত ডকুমেন্টের ক্রমাগত সময়কাল

Range অবজ্জীবিত

Range অবজ্জীবিত ডকুমেন্টের ক্রমাগত সময়কাল অংশকে প্রতিনিধিত্ব করে, যেমন ব্যবহারকারী ব্রাউজার প্রদর্শন বান্ধনীতে মাউস দ্বারা নির্বাচিত এলাকা。

যদি একটি রূপায়ন রেঞ্জ মডিউলটি সমর্থন করে Document অবজ্জীবিতএটি নির্ধারিত করে createRange() পদ্ধতিএবং তা কল করে, একটি নতুন Range অবজ্জীবিত তৈরি করা যায়。

মন্তব্য:IE দ্বারা অসমমান ডকুমেন্ট.createRange() পদ্ধতি নির্ধারিত হয়, যা রেঞ্জ ইন্টারফেসের মতো পদ্ধতি ফেরত দেয়, কিন্তু সমমান নয়。

Range ইন্টারফেস ডকুমেন্টটিতে 'নির্বাচিত' হওয়া এলাকাকে নির্দিষ্ট করার জন্য বেশ কিছু পদ্ধতি প্রদান করে, এছাড়াও কিছু পদ্ধতি নির্বাচিত এলাকায় কাটা এবং চিপকা করার প্রক্রিয়াকে ব্যবহার করা যায়。

Range ইন্টারফেসের প্রতিশ্রুতি মাধ্যমগুলো সময়কালের সীমান্তবিন্দুগুলো এবং অবস্থান পাওয়ার পদ্ধতি প্রদান করে। তার পদ্ধতিগুলো সময়কালের সীমান্তবিন্দুকে সংজ্ঞায়িত করার পদ্ধতি প্রদান করে। নোট: সময়কালের সীমান্তবিন্দুগুলোকে Document বা DocumentFragment অবজ্জীবিতযেখানে নোডগুলো রয়েছে। একবার সময়কালের সীমান্তবিন্দুগুলো সংজ্ঞায়িত হলে, deleteContents()、extractContents()、cloneContents() এবং insertNode() পদ্ধতি ব্যবহার করে কাটা, কপি এবং চিপকা করার অপারেশন করা যায়。

যখন ডকুমেন্টটিকে যোগ করা বা সরানো করা হয়, তখন ডকুমেন্টের একটি অংশকে বলা সময়কাল অবজ্জীবিত রাখতে, সময়কালের সীমান্তবিন্দুগুলোকে প্রাসঙ্গিক রাখতে (যদি প্রয়োজন) এবং তাদের (যতটা সম্ভব) একই ডকুমেন্ট সামগ্রীকে প্রতিনিধিত্ব করতে, সময়কাল অবজ্জীবিত হয়。

শব্দ: সময়কাল, সীমান্তবিন্দু এবং অবস্থান

একটি সময়কালটি দুই সীমান্তবিন্দুতে বিশিষ্ট, যেমন একটি শুরুপদ এবং একটি শেষপদ। প্রত্যেক সীমান্তবিন্দুকে একটি নোড এবং সেই নোডের অবস্থান দ্বারা নির্দিষ্ট করা হয়। সেই নোডটি সাধারণত এলিমেন্ট নোডডকুমেন্ট নোডবা টেক্স্ট নোডএলিমেন্ট নোড এবং ডকুমেন্ট নোডের জন্য, অবস্থানটি বলতে সেই নোডের সাবনোডস নোডকে বোঝায়। অবস্থান 0 হলে, তা বলতে বোঝায় শুষ্কপদটি সেই নোডের প্রথম সাবনোডস নোডের আগে অবস্থিত। অবস্থান 1 হলে, তা বলতে বোঝায় শুষ্কপদটি সেই নোডের প্রথম সাবনোডস নোডের পরে, দ্বিতীয় সাবনোডস নোডের আগে অবস্থিত। কিন্তু যদি শুষ্কপদটি টেক্স্ট নোড হয়, তবে অবস্থানটি টেক্স্টের দুই অক্ষরের মধ্যবর্তী স্থানকে বোঝায়。

Range অবজেক্টের স্থায়ী

এইসব স্থায়ী রেঞ্জ অবজেক্টের সীমানার স্থানকে কিভাবে তুলনা করা হবে নির্দেশ করে

এইসব স্থায়ী হলো compareBoundaryPoints() পদ্ধতির how প্রামাণ্য পারামিটারের মান:

স্থায়ী বর্ণনা
START_TO_START নির্দিষ্ট Range-এর ভাবমুখী স্থানকে বর্তমান Range-এর ভাবমুখী স্থানের সাথে তুলনা করুন
START_TO_END নির্দিষ্ট Range-এর ভাবমুখী স্থানকে বর্তমান Range-এর শেষমুখী স্থানের সাথে তুলনা করুন
END_TO_END নির্দিষ্ট Range-এর শেষমুখী স্থানকে বর্তমান Range-এর শেষমুখী স্থানের সাথে তুলনা করুন
END_TO_START নির্দিষ্ট Range-এর শেষমুখী স্থানকে বর্তমান Range-এর ভাবমুখী স্থানের সাথে তুলনা করুন

Range অবজেক্টের বৈশিষ্ট্য

মন্তব্য:সকল বৈশিষ্ট্যই অধিকারিতা বৈশিষ্ট্য, Range-এর ভাবমুখী এবং শেষমুখী স্থানকে পরিবর্তন করতে এই বৈশিষ্ট্যগুলোকে সেট করা যায় না, এটা করতে setEnd() এবং setStart() পদ্ধতিকে বাউন্ডারি করতে হবে

মন্তব্য:detach() পদ্ধতিকে বাউন্ডারি করার পর, এই বৈশিষ্ট্যগুলোর অবশিষ্ট কোনও পড়াশোনা করলে INVALID_STATE_ERR কোডের ভূল ফেলে যাবে DOMException সমস্যা.

বৈশিষ্ট্য বর্ণনা
collapsed যদি Range-এর ভাবমুখী এবং শেষমুখী স্থান ডকুমেন্টের একই স্থানে থাকে, তবে এটি true, অর্থাৎ Range খালি হয়েছে বা ফুলেছে
commonAncestorContainer Range-এর ভাবমুখী এবং শেষমুখী স্থান (যারা তাদের পূর্বসূরী নোড) এবং সবচেয়ে গভীরভাবে নিহিত Document নোড
endContainer Range-এর শেষমুখী স্থানকে ধারণকারী Document নোড
endOffset endContainer-এর শেষমুখী স্থান
startContainer Range-এর ভাবমুখী স্থানকে ধারণকারী Document নোড
startOffset startContainer-এর ভাবমুখী স্থান

Range অবজেক্টের পদ্ধতি

মন্তব্য:যদি Range-এর detach() পদ্ধতিকে বাউন্ডারি করা হয়েছে, তবে Range অবজেক্টের অবশিষ্ট কোনও পদ্ধতিকে বাউন্ডারি করলে 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() এই পরিসরটির প্রকাশিত ডকুমেন্ট এরিয়ার সহজ টেক্সট কনটেন্টকে ফিরিয়ে দিয়ে।