Surligner un mot clé sur une page à partir d'une toolbar
Bonjour,
Je veux faire un stabilo, a peut près comme celui proposé dans la toolbar de google.
Voici ce que j'ai:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| ----------------------------------------------------------------------
<html>
<head>
<title>Test satbilo</title>
<style type="text/css">
.surligne {
background-color: #ffa;
}
</style>
<script type"text/javascript">
function getText(){
var texte = document.getElementById("motcle").value;
return texte;
}
function Surligner(chaine, doc) {
alert(chaine);
alert("Le body de la page :" +doc);
var i=posChaine=posTag=finTag=n=0;doc1=doc2=''
//doc1 : texte avant un tag
//doc2 : texte final
// var doc = document.body.innerHTML;
el='<span class="surligne">'+chaine+'</span>'
//console.log(chaine);
if(chaine==''){
document.body.innerHTML = docload;
// n pour éviter la boucle infinie
while(doc!='' && n<999) {
posTag=doc.indexOf('<') //position d'un début de balise HTML
doc1=doc.substr(0,posTag) // bout de texte avant un tag
//tant qu'on trouve une occurence de la chaine
while(doc1.indexOf(chaine)!=-1 && i<99) {
posChaine=doc1.indexOf(chaine); // position occurence trouvée
doc2+=doc1.substr(0,posChaine)+el // texte avant occurence + élément jouté
doc1=doc1.substr(posChaine+chaine.length,doc1.length) // doc1 restant
i++
}
doc2+=doc1 // on ajoute doc1 restant après la sortie de boucle
finTag=doc.indexOf('>')
doc2+=doc.substring(posTag,finTag+1) // ajoute le tag
doc=doc.substr(finTag+1,doc.length) //reste du texte
n++
}
document.body.innerHTML=doc2+doc // complète avec le reste de texte
}
</script>
</head>
<body>
<form name="marqueur" onsubmit="Surligner(getText(),docload);">
Mot clé :
<INPUT type=text id="motcle" size=60 value="" >
<BR>
<INPUT type="submit" value="Rechercher" >
</form>
<p>
Test sur le bouton stabilo <br>
Test sur le bouton stabilo<br>
Test sur le bouton stabilo <br>
</p>
</body>
<script >
var docload = document.body.innerHTML;
</script>
</html>
---------------------------------------------------------------------- |
ca marche, mais le problème est que quand j'intègre ce code dans ma toolbar:
je recupère bien l'id du champ texte de ma toolbar dans la fonction getText(), mais la variable var docload me recupère le body de ma toolbar et non celui de la page web courante.
Y a t il une facon d'acceder au document de la page web en question?
Surligner un mot clé sur une page à partir d'une toolbar
Personne n'a une idée?
Comment je peux récupérer l'objet document d'une page à partir d'un autre objet document? ou ce n'est pas possible?