كيفية الحفاظ على اختيار النص عند فتح مسج الحوار
-
05-07-2019 - |
سؤال
باستخدام مسج هذا الحوار جئت عبر ما يلي شاءت (اختبار في FF3):
- المستخدم بتحديد النص
- في التعليمات البرمجية ، وفتح مسج الحوار
- BUG:يحصل النص غير محددة
(النص يمكن أن يكون في ناحية النص أو HTML فقط على الصفحة)
لذا يبدو لي مثل مضحك (مزعج) علة أو نزوة ، ولكن ربما هناك تفسير جيد على ذلك.وما يهمني أكثر هو كيفية الحفاظ على هذا النص الاختيار بعد فتح الحوار ؟
هنا بعض التعليمات البرمجية:
function getSelectedText() {
var t;
if (d.getSelection) t = d.getSelection();
else if(d.selection) t = d.selection.createRange();
if (t.text != undefined) t = t.text;
if (!t || t=='') {
var a = d.getElementsByTagName('textarea');
for (var i = 0; i < a.length; ++i) {
if (a[i].selectionStart != undefined && a[i].selectionStart != a[i].selectionEnd) {
t = a[i].value.substring(a[i].selectionStart, a[i].selectionEnd);
break;
}
}
}
return t;
}
$("#dialog").dialog({
autoOpen: false,
bgiframe: false,
height: 60,
width: 80,
modal: false,
show: 'highlight',
title: 'wc'});
alert(getSelectedText()); // Text is here
$("#dialog").dialog("open");
alert(getSelectedText()); // Text is not selected here :( damn!
وذلك بفضل!
المحلول
مسج الحوار سوف تأخذ المستخدم التركيز ( يجب أن تشاهد أحد الأزرار المحددة في مربع الحوار ).المتصفحات فقط 1 التركيز حتى تفقد كل ما لديهم المختارة.
يجب عليك فقط استرداد بداية ونهاية مواقف الاختيار للمستخدم قبل أن تفعل الحوار ثم reselected بعد الحوار يذهب بعيدا.
ليس لدي أي رمز المثال من أجل الحصول على تعيين المستخدم الاختيار ، ولكن البحث على شبكة الإنترنت أن تجد بعض.
شيء من هذا القبيل :
$("dialog").focus(function() {
// save the selection
}).blur(function() {
// set the text selection
});
[تحرير (نيكولاي):انظر الحفاظ على اختيار النص عندما يتغير التركيز لمزيد من التعليمات البرمجية]