InnerHTML nepoužitelný ? – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

InnerHTML nepoužitelný ? – JavaScript, AJAX, jQuery – Fórum – Programujte.comInnerHTML nepoužitelný ? – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Petroff0
Věrný člen
9. 11. 2007   #1
-
0
-

Udělal jsem regexp pro náhradu WWW a email řetězců v textu na odkazy, a použil v ovladači onload.
Došlo k drastické změně vzhledu, nakonec jsem přišel na to, že moje funkce je v tom nevinně.
Zredukovaný onload:

window.onload=function(){

var pre,s;
if (pre=document.getElementsByTagName("pre")[0]) {
s=pre.innerHTML;
/* vyřadil jsem s=fn(s) z provozu */
pre.innerHTML=s;
}
}
mi zbourá stránku s textem (jednořádková nudle, znaky CrLf chybí).
Napadla mě ještě metoda outerHTML; ta však není funkční všude...?

Nahlásit jako SPAM
IP: 89.102.211.–
Reklama
Reklama
Prog.0
Věrný člen
10. 11. 2007   #2
-
0
-

Napadá ma ešte také riešenie, že budeš rekurzívne prechádzať childNodes[] tých <pre>, a vždy keď nájdeš textnode, tak na neho aplikuješ fn(). Len neviem ako je to s podporou.

Nahlásit jako SPAM
IP: 213.160.186.–
Prog.
Petroff0
Věrný člen
10. 11. 2007   #3
-
0
-

1. To by nepomohlo - ty text node neobsahují Lf jenom mezery (zjištěno ve Firebugu childNodes [0], [1] ,[2] ...)
Zajímavé ve FF:
1 innerHTML=1text obsah je rozsekaný na text nodes (limit je při dosažení size=4096znaků)

2. Už to mám = emulace outerHTML:

<div id="obsah"><pre>.......</pre></div>


window.onload=function(){
var pre;
if (pre=document.getElementById("obsah")[0]) pre.innerHTML=makeLinks(pre.innerHTML);
}
function makeLinks(s){
var zav="\\[at\\]"; /* zavináč */
var dot="\\[dot\\]"; /* tečka */
var spc=" "; /* doplnit na stejnou délku */
s=s.replace(/ ((http:\/\/|(www\.))([^ ]+)) /gm," "+"$1".link("http://$3$4")+" ");
s=s.replace(new RegExp(" ([^ ]+)"+zav+"([^ ]+)"+dot+"([^ ]+) ","g")," "+"$1@$2.$3".link("mailto://$1@$2.$3")+spc+" ");
return s;
}

Nahlásit jako SPAM
IP: 89.102.211.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 10 hostů

Podobná vlákna

InnerHTML a IE — založil dalaman

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý