জাভাস্ক্রিপ্টে কোনও ফাংশন কি কেবলমাত্র সমস্ত নির্বাচিত পাঠ্যটি অনির্বাচিত করার জন্য রয়েছে? আমি অনুভব করেছি যে এটির মতো সাধারণ document.body.deselectAll();
কিছু বা অন্য কিছু হয়ে উঠেছে global
উত্তর:
এটা চেষ্টা কর:
function clearSelection()
{
if (window.getSelection) {window.getSelection().removeAllRanges();}
else if (document.selection) {document.selection.empty();}
}
এটি কোনও বড় ব্রাউজারে নিয়মিত এইচটিএমএল বিষয়বস্তুতে একটি নির্বাচন সাফ করবে। এটি কোনও পাঠ্য ইনপুট বা <textarea>
ফায়ারফক্সে কোনও নির্বাচন সাফ করবে না ।
removeAllRanges()
পদ্ধতি অনুচ্ছেদ বা অনুরূপ অ ফর্ম-ক্ষেত্র উপাদান ভিতরে পাঠ্যের জন্য সমস্ত বর্তমান ব্রাউজারে কাজ করে। ফর্ম-ক্ষেত্রগুলির জন্য (যেমন টেক্সারিয়া) আইই 9 এবং এফএফ 5 এ এই পদ্ধতিটি কাজ করে না।
window.getSelection().removeAllRanges();
প্রথমে ব্যবহার করুন কারণ এটি মান-সম্মতিযুক্ত, স্বত্বাধিকারী কোড সর্বদা সর্বশেষে কার্যকর করা উচিত । এটি ২০০৪ সাল বা 4004 মান সম্মত কোড হ'ল সর্বদা সর্বশেষে আমরা যা ব্যবহার করি তাই ব্যতিক্রম ছাড়াই প্রথমে এটি সনাক্ত করতে পারি!
এখানে এমন একটি সংস্করণ যা পাঠ্য ইনপুট এবং টেক্সারিয়াস সহ যে কোনও নির্বাচন সাফ করবে:
ডেমো: http://jsfiddle.net/SLQpM/23/
function clearSelection() {
var sel;
if ( (sel = document.selection) && sel.empty ) {
sel.empty();
} else {
if (window.getSelection) {
window.getSelection().removeAllRanges();
}
var activeEl = document.activeElement;
if (activeEl) {
var tagName = activeEl.nodeName.toLowerCase();
if ( tagName == "textarea" ||
(tagName == "input" && activeEl.type == "text") ) {
// Collapse the selection to the end
activeEl.selectionStart = activeEl.selectionEnd;
}
}
}
}
<div>
তবে mouseup
ইভেন্টটি আগুন দেয় না। পরিবর্তে দস্তাবেজে মাউসআপ হ্যান্ডলারটি রাখুন এবং এটি ভাল হবে: jsfiddle.net/SLQpM/23
ইন্টারনেট এক্সপ্লোরারের জন্য, আপনি দস্তাবেজের খালি পদ্ধতিটি ব্যবহার করতে পারেন lection
document.selection.empty ();
ক্রস ব্রাউজার সমাধানের জন্য, এই উত্তরটি দেখুন:
document.selection.clear()
কাজ করে । এখানে দেখুন: jsfiddle.net/9spL8/4 এছাড়াও, এই পদ্ধতিটি কেবল এটি নির্বাচন না করে নির্বাচিত পাঠ্যটিকে সরিয়ে ফেলবে । কেবল পাঠ্যটি অনির্বাচিত করতে তার পরিবর্তে ব্যবহার করুন। document.selection.empty()
textarea
কমপক্ষে 10 টি অক্ষরযুক্ত একটি উপাদানের জন্য নীচেরগুলি একটি ছোট নির্বাচন করবে এবং তার পরে দেড় থেকে দেড়েক পরে এটি নির্বাচন থেকে নিঃশব্দ করুন:
var t = document.getElementById('textarea_element');
t.focus();
t.selectionStart = 4;
t.selectionEnd = 8;
setTimeout(function()
{
t.selectionStart = 4;
t.selectionEnd = 4;
},1500);
এটি আমার পক্ষে অবিশ্বাস্যভাবে সহজ কাজ করেছে ...
document.getSelection().collapseToEnd()
বা
document.getSelection().removeAllRanges()
ক্রেডিট: https://riptorial.com/javascript/example/9410/deselect-everything-that-is- Seected
window.getSelection().removeAllRanges();
সমস্ত বর্তমান ব্রাউজারে কাজ করে। লাইভ ডেমো: jsfiddle.net/hWMJT/1