Je souhaiterais savoir s'il était possible de rechercher dans un texte
un mot clé et de colorer toutes les occurrences en javascript.
Je pense que cela doit-être faisable mais je ne vois pas comment.
Des idées?
Merci d'avance
Pascal
_______________________________________________
jQue...@rezo.net - http://listes.rezo.net/mailman/listinfo/jquery-fr
C'est du JS pur, pas du jQuery - mais ça rend service :
Le JS :
function doHighlight(bodyText, searchTerm, highlightStartTag,
highlightEndTag)
{
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue;
background-color:yellow;'>";
highlightEndTag = "</font>";
}
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
if (lcBodyText.lastIndexOf("/script>", i) >=
lcBodyText.lastIndexOf("<script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag +
bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure,
highlightStartTag, highlightEndTag)
{
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is
unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag,
highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
Et la commande dans le HTML :
<bodyonload="highlightSearchTerms('mot_que_tu_veux_surligner');">
Michel
http://mlh02.free.fr/mediatheque/__essai_body_text.php
Le 13/03/2011 17:21, Pascal a écrit :
A une époque je me suis servi d'un plugin pour surligner certain
mot de ma page.
Peut-être te conviendra-t-il :
http://www.jquery.info/spip.php?article50.
hth
--
Lionel Morin