كيفية الحفاظ على اختيار النص عند فتح مسج الحوار

StackOverflow https://stackoverflow.com/questions/824833

سؤال

باستخدام مسج هذا الحوار جئت عبر ما يلي شاءت (اختبار في FF3):

  1. المستخدم بتحديد النص
  2. في التعليمات البرمجية ، وفتح مسج الحوار
  3. 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
});

[تحرير (نيكولاي):انظر الحفاظ على اختيار النص عندما يتغير التركيز لمزيد من التعليمات البرمجية]

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top