Autor Zpráva
Hranol
Profil *
Ahoj,

Vrtá mi hlavou jak udělat script, který by hledaný výraz našel na stránce a nastavil mu barvu pozadí tak, aby byl dobře vidět.
havs
Profil
např:

echo str_replace("výraz", "<span style=\"color:#f30\">výraz</span>", $text);

... kecám, vždyť se ptáš na js, promiň :-(
havs
Profil
moc js nepoužívám, ale abych napravil přehlédnutí, tak asi nějak:

str = "nějaký text, kde výraz bude zvýrazněn";
var str = str.replace(/výraz/g,'<span style="background-color:#f30">výraz</span>');
document.write(str);
Oswald
Profil
Jeden ze způsobů (hodně primitivní - je to case-sensitive), čistě pomocí DOM, ale pro IE by bylo potřeba změnit způsob hledání (nezná nic jako document.evaluate) a vybírání (má vlastní nekopatibilní implementaci Range):

http://www.webkitchen.cz/lab/js/search.html
peta
Profil *
Hranol viz havs , ale parametry bych dal GI

var str;
str = "nějaký text, kde výraz bude zvýrazněn";
str = str.replace(/výraz/g,'<span style="background-color:#f30">výraz</span>');
document.write(str);

ALE...
1. gi - g = global (v celem retezci) , i = case-in-sensitivity (nezalezi na velikosti pismen)
2. class nebo bez class
3. deklarace vyrazu

var reg,str;
reg = new RegExp("[ýea]","gi"); //text nebo reg. vyraz, parametry
str = "nějaký text, kde výraz bude zvýrazněn";
str = str.replace(reg,"<span class=\"barva1\">$1<\/span>");
nebo
str = str.replace(reg,"<strong>$1<\/strong>");
str = str.replace(reg,"<b>$1<\/b>");
kde barvu pozadi mam definovanou v CSS pro dany tag
a $1 je nalezeny retezec resp cislo vyrazu (pri (a)(b) vraci $1 i na "ab" pouze "a")

http://visibone.com
Toto téma je uzamčeno. Odpověď nelze zaslat.