С помощью диалогового окна JQuery, я наткнулся на следующую галтель (протестировано в FF3): выборКак сохранить выделение текста при открытии диалогового окна JQuery
- Пользователь текста
- В коде, откройте JQuery диалоговое
- Ошибка: текст получает невыбранный
(текст может быть в текстовом поле или просто 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!
Спасибо!
насколько я могу судить, это нормальное поведение. Если вы выберете текст, а затем щелкните в другом месте страницы, выбор не будет выполнен. – Geoff
Это не щелчок - диалог открывается программно (с помощью setInterval), и нет щелчка. – Ran