Bonjour à tous!
Sur ma page, j'ai un iframe dont j'édite le contenu. Par la suite, j'aimerais insérer des balises autour du texte sélectionné. Le problème provient de la méthode "selectionStart" qui devrait me renvoyer l'index du premier caractère sélectionné. Or là j'ai "undefined"!!!
Voici mon code:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test de sélection</title>
</head>
<body onload="init();">
<iframe id="monIframe"></iframe><br/>
<input type="button" value="sélection" onclick="selectionner();"/>
<script type="text/javascript">
function init()
{
document.getElementById('monIframe').contentWindow.document.designMode="on";
}
function selectionner()
{
var iframe = document.getElementById('monIframe') ;
var textIframe = iframe.contentWindow.document.body.innerHTML ;
var textSel = iframe.contentWindow.getSelection();
var debutSel = iframe.contentWindow.document.body.innerHTML.selectionStart;
alert("Texte de l'iframe: "
+ textIframe
+ "\nTexte sélectionné: "
+ textSel
+ "\nDébut de la sélection: "
+ debutSel);
}
</script>
</body>
</html>
A noter que je travaille sous FF et qu'à priori, tous ceux qui sont amenés à utiliser mon code seront pareillement équipés. Il n'est donc pas nécessaire de rendre le code compatible IE ou autre.
Merci pour vos réponses.
Alors, on sèche??
Bon c'est pas trop grave je vient de tomber sur un truc intéressant (execCommand()) qui m'a l'air de faire à peu près ce que je veux.
Ce que je trouve dommage, c'est que je n'ai plus le contrôl totale de ce que je fait.
Donc si quelqu'un a une idée pour mon problème de "selectionStart" ne pas se gêner pour me le faire savoir!!
Cordialement
@rtur
selectionStart ne fonctionne apparemment que sur les textarea ou inputs textes.
Du coup, je ne vois pas comment résoudre ton problème
selectionStart et iframe
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.