cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
5 avril 2007 à 13:16
cs_kenzaar -
14 févr. 2011 à 14:15
Bonjour à toutes et à tous,
je ne parviens pas à utiliser .selection??? dans un iframe ( avec FF/M-Meleon... donc )
<script type="text/javascript">
var Fen,Champ;
function init()
{
Fen=document.getElementById('saisie').contentWindow;
Champ=document.getElementById('saisie').contentDocument;
Champ.designMode='on';
Fen.focus();
}
function siFF()
{
var tmp = document.getElementById('saisie'); // erreurs
var tmp=Fen; // "
var tmp=Champ; // " ...
// j'ai essayé pas mal d'autres choses, mais je ne trouve pas !
alert(tmp.selectionEnd); // par exemple !
//=======*************
}
</script>
si vous savez ce serait sympa de me le dire.
il faut faire autrement ?
merci d'avance.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 5 avril 2007 à 13:20
j'ai oublié de préciser que le but du jeu
c'est de remplacer ces caractères sélectionnés par "autre chose".
avec IE on ferait : sel = Champ.selection.createRange();
sel.text="tout ce qu'on veut"; pour donner une idée.
<hr />
function replaceSelection() {
var textRange = frameSelection.createRange();
var el = document.getElementById("t_html");
textRange.htmlText=el.value;
el.value="";
}
--></script>
</head>
<form id ="replaceForm" action="javascript:replaceSelection()">
<textarea id="t_html" name="t_html"></textarea>
</form>
</html>
Pourquoi notre PC fait-il toujours ce qu'on lui demande ... et pas ce qu'on veut ???
function replaceSelection() {
var textRange = frameDocument.selection.createRange()
if (!textRange) { textRange = new SelectionObject(frameWindow).createRange(); }
var el = document.getElementById("t_html");
textRange.text=el.value;
el.value="";
}
--></script>
</head>
<form id ="replaceForm" action="javascript:replaceSelection()">
<textarea id="t_html" name="t_html"></textarea>
alert(t1); //affiche texte sélectionné
t1="remplacer par n'importe quoi"; //ne remplace pas
alert(t1.selectionStart); //undefined
alert(t2); //affiche le texte sélectionné
t2="remplacer par n'importe quoi"; //ne remplace pas
alert(t2.selectionStart); //undefined
}
</script>
>>Alors ce projet avance...
doucement... entre 25 autres choses.
la conception est finie, avec IE je pourrais terminer,
il faudrait que cette fonctionnalité marche avec FF ( et consors )
pour que je finalise
si tu jettes un oeil pour me dire où me plante-je ?
le but du jeu c'est de remplacer ces caractères sélectionnés par "autre chose"
avec IE on ferait : sel = Champ.selection.createRange();
sel.text="tout ce qu'on veut"; pour donner une idée.
Zobibol
Messages postés469Date d'inscriptionmercredi 9 janvier 2002StatutMembreDernière intervention20 février 20176 6 avril 2007 à 09:56
Bien le bonjour, alors un petit point de départ :
function siFF()
{
var t2 = O_Edit.contentWindow.getSelection();
// récupère le point de départ
var start = t2.anchorOffset;
// récupère le nombre de caractère sélectionné
var end = t2.focusOffset;
// récupère le contenu
var innerValue =O_Edit.contentDocument.body.textContent;
// ajout de la balise entourante
var newStr = innerValue.substr ( 0,start);
//
newStr+="<label style='background-color:blue; color:white'>"+t2+"</label>";
// jusqu'à la fin
newStr+= innerValue.substr ( end,innerValue.length);
// et réaffecte le nouveau contenu
O_Edit.contentDocument.body.innerHTML = newStr;
}
Mais ce n'est qu'un point de départ car, il y a des soucis ( notament sur plusieur ligne.) après la question est de savoir par quoi remplacer, dans mon exemple, je m'appuis sur un label et ça fou la grouille parce que du coup la première sélection semble fonctionner mais après ça part un peu en live. surtout sur plusieur ligne ( il ne prends pas en compte les saut de lignes ).
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 avril 2007 à 10:23
salut zobibol,
>>à creuser peut être ?
sûrement même !
décalage probablement du au fait qu'on traite comme si c'était du
"texte brut" et pas le html ( donc bonjour les balises déjà existantes... ) ?
non ? ( ça marche la 1ère fois, plus après )
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 avril 2007 à 10:32
mais si on applique ce que je proposais ailleurs
1° mémoriser les caractères sélectionnés de l'Iframe
2° remplacer cette sélection par "une suite de caractères qui n'existent pas" dans l'Iframe
3° mémoriser l'Iframe modifié dans un textarea
4° remplacer dans ce textarea "la suite de caractères qui n'existaient pas"
par les balises + " les caractères sélectionnés du l'Iframe"
5° mettre le textarea dans Iframe
ben... ça devrait le faire...
essais et je dis quoi.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 6 avril 2007 à 10:34
mais si on applique ce que je proposais ailleurs
1° mémoriser les caractères sélectionnés de l'Iframe
2° remplacer cette sélection par "une suite de caractères qui n'existent pas" dans l'Iframe
3° mémoriser l'Iframe modifié dans un textarea
4° remplacer dans ce textarea "la suite de caractères qui n'existaient pas"
par les balises + " les caractères sélectionnés du l'Iframe"
5° mettre le textarea dans Iframe
ben... ça devrait le faire...
essais et je dis quoi.
FREMYCOMPANY
Messages postés276Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention22 décembre 2008 6 avril 2007 à 14:38
Escuse moi mais chez moi mon exemple marche très bien...
Tu es sur que que tu as bien mis document.selection.js dans le même dossier ?
> Télécharge le ZIP de ma source pour en avoir le coeur net
Pourquoi notre PC fait-il toujours ce qu'on lui demande ... et pas ce qu'on veut ???
FREMYCOMPANY
Messages postés276Date d'inscriptionjeudi 12 janvier 2006StatutMembreDernière intervention22 décembre 2008 6 avril 2007 à 14:53
En effet, il y avait une faute dans me ZIP, sorry...
J'avais corrigé chez moi et j'avais pas uploadé et quand j'ai posté ici, j'ai pas pris la version de mon disque dur mais celle du ZIP (confus)
Maintenant c'est corrigé (voir INDEX.HTML)
Pourquoi notre PC fait-il toujours ce qu'on lui demande ... et pas ce qu'on veut ???