1.JS=reklamní lišta vygeneruje HTML s inline styly --> tohle je jedna položka seznamu
<LI style="DISPLAY: inline; BACKGROUND: url(http://img.ic.cz/img/9.gif) no-repeat 50% 50%; COLOR: blue! important; LIST-STYLE-TYPE: none! important"><A class=ic_lista onmousedown="javascript:void(myImage = new Image());void(myImage.src = 'http://c.ic.cz/klik.php?url_id=73&l=3&p=4');" title="Hosting za super ceny." style="FONT-SIZE: 12px! important; COLOR: black" onclick="javascript:urchinTracker('/clicks/click');" href="http://c.ic.cz/redir.php?url_id=73&l=3" target=_blank>Webhosting od 19 Kč</A></LI>
2.můj skript má některé styly změnit/přidat - a inline styly important se nedají přepsat ani ve <style>, ani JS pomocí DOM (NELZE: element.style.padding="0 0 0 10px important")
Takže jsem použil innerHTML a string.replace s regulárními výrazy k přidání deklarací na konec:
(a funguje to v IE7 a FF)
var uH = lists[i].innerHTML;
uH = uH.replace(/(<li\s+style="[^"]+)("[^>]*>)/gi,
'$1; background-position: 3px 50% !important ;$2'
);
lists[i].innerHTML = uH;
Problém je v tom, že lištička vygeneruje v každém prohlížeči mírně odlišný kód, a v Opeře to nefunguje díky zápisu:
<LI STYLE='word-spacing: -1px; display: inline; list-style-type: none; background-attachment: scroll; background-repeat: no-repeat; background-position: 0px 50%; background-color: transparent; background-image: url("http://img.ic.cz/img/4.gif"); padding-top: 0; padding-right: 6px; padding-bottom: 0; padding-left: 11px'><A target="_blank" onmousedown="javascript:void(myImage = new Image());void(myImage.src = 'http://c.ic.cz/klik.php?url_id=73&l=3&p=4');" STYLE='color: #ffffff; font-size: 12px' class="ic_lista" title="Hosting za super ceny." onclick="javascript:urchinTracker('/clicks/click');" href="http://c.ic.cz/redir.php?url_id=73&l=3">Webhosting od 19 Kč</A></LI>
Nechci použít detekci Opery(nespolehlivé) a větvení do 2 replace procedur
Jestli umíte sestavit potřebný (dualní) reg find string moc mi pomůžete - díky.