En utilisant la boîte de dialogue de jQuery je suis tombé sur la bizarrerie suivant (testé FF3):Comment conserver la sélection de texte lors de l'ouverture d'un dialogue jQuery
- L'utilisateur sélectionne le texte
- Dans le code, ouvrez une boîte de dialogue jQuery
- BOGUE: le texte est désélectionné
(texte pourrait être dans une zone de texte ou tout simplement un HTML sur la page)
Donc, pour moi, cela semble être un bug drôle (et énervant) ou une bizarrerie, mais peut-être qu'il y a une bonne explication à cela. Et ce qui m'intéresse le plus, c'est comment conserver cette sélection de texte après l'ouverture du dialogue?
Voici quelques code:
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!
Merci!
pour autant que je peux dire, ce comportement est normal. Si vous sélectionnez du texte, puis cliquez n'importe où ailleurs sur la page, la sélection a disparu. – Geoff
Ce n'est pas un clic - la boîte de dialogue est ouverte par programmation (en utilisant setInterval) et il n'y a pas de clic. – Ran