যেহেতু আসলেই আমার এই সমাধানটি সত্যিই প্রয়োজন, এবং আদর্শ বেসলাইন সমাধান ( ইনপুটকে ফোকাস করুন - তারপরে মানটি নিজের সমান নির্ধারণ করুন ) ক্রস ব্রাউজারে কাজ করে না, কাজ করার জন্য আমি কিছুটা টুইট করতে এবং সম্পাদনা করতে ব্যয় করেছি। @ কেডি 7 এর কোড তৈরি করে এখানে আমি যা নিয়ে এসেছি।
উপভোগ করুন! আই 6 6, ফায়ারফক্স, ক্রোম, সাফারি, অপেরাতে কাজ করে
ক্রস ব্রাউজারের কার্ট অবস্থানের কৌশল (উদাহরণ: কার্সারটিকে শেষের দিকে নিয়ে যাওয়া)
// ** USEAGE ** (returns a boolean true/false if it worked or not)
// Parameters ( Id_of_element, caretPosition_you_want)
setCaretPosition('IDHERE', 10); // example
মাংস এবং আলু মূলত @ কেডি 7 এর সেটকারেটপজিশন, সবচেয়ে বড় ঝাঁকুনি রয়েছে, if (el.selectionStart || el.selectionStart === 0)
ফায়ারফক্সে নির্বাচন স্টার্ট 0 থেকে শুরু হচ্ছে , যা অবশ্যই বুলিয়ান পরিণত হচ্ছে, তাই এটি সেখানে ভেঙে যাচ্ছিল।
ক্রোমের মধ্যে সবচেয়ে বড় সমস্যাটি ছিল যে কেবল এটি দেওয়া .focus()
যথেষ্ট ছিল না (এটি পাঠ্যের সমস্তটি নির্বাচন করে চলেছে!) সুতরাং, আমরা el.value = el.value;
আমাদের ফাংশনটি বলার আগে নিজের মূল্যকে নিজের কাছে সেট করে দিয়েছি , এবং এখন এটির সাথে উপলব্ধি ও অবস্থান রয়েছে নির্বাচন স্টার্ট ব্যবহার করার জন্য ইনপুট ।
function setCaretPosition(elemId, caretPos) {
var el = document.getElementById(elemId);
el.value = el.value;
// ^ this is used to not only get "focus", but
// to make sure we don't have it everything -selected-
// (it causes an issue in chrome, and having it doesn't hurt any other browser)
if (el !== null) {
if (el.createTextRange) {
var range = el.createTextRange();
range.move('character', caretPos);
range.select();
return true;
}
else {
// (el.selectionStart === 0 added for Firefox bug)
if (el.selectionStart || el.selectionStart === 0) {
el.focus();
el.setSelectionRange(caretPos, caretPos);
return true;
}
else { // fail city, fortunately this never happens (as far as I've tested) :)
el.focus();
return false;
}
}
}
}
if(elem.selectionStart)
ব্রেকস্টেশন যখন সিলেকশন স্টার্ট 0 হয় এছাড়াও jhnns এর উত্তর দ্বারা নির্দেশিত।