Autor Zpráva
drvaca
Profil
Zdravím,
mám netradiční dotaz. Snažil jsem se udělat kód, kde by v adresním řádku bylo číslo článku a ten článek by se vypsal do stránky. Při zkoušení jsem došel až k tomuhle funkčnímu kódu:
<script>
var pole = window.location.search.substr(1).split("&"); 
var httpGetVars = new Array(); 
for(i = 0; i < pole.length; i++){
    httpGetVars[pole[i].split("=")[0]] = unescape(pole[i].split("=")[1]); 
}
document.write("<script language=\"javascript\" src=\"novinka" + httpGetVars["clanek"] + ".js\">");
</script>
<script language="javascript"
src="./novinka' + httpGetVars['clanek'] + '.js">
</script>
Mám v něm však (zdá se mi) dvakrát vložení toho zvoleného článku. Článek se však vkládá správně pouze jednou, a když odstraním tři poslední řádky tak nefunguje. A když odstraním pouze pátý řádek odspoda, tak to také nefunguje.
Mohli byste mi to prosím někdo vysvětlit?
Darker
Profil
V top document write chybí </script>. Není mi jasné proč články vkládáš jako skripty a nepoužíváš rovnou IFRAME nebo XMLHttpRequest. (Každý normální člověk by samozřejmě použil PHP, které je přesně k tomuto určené, já ale předpokládám, že je to pro tebe nemožné.)
drvaca
Profil
Darker:
Chybu tam mít určitě mohu*, ale tímhle to zjevně nebude. Totiž, když tam ono </script> dopíšu, jediné co se pak v dokumentu zobrazí je ");. A to ať tam pak ty poslední tři řádky zůstanou nebo ne.
Jinak tohle mi příjde jako nejvhodnější řešení a PHP (které by bylo ještě vhodnější) webhosting vskutku nepodporuje.

*Jen mě tak napadlo - nedávno jsem někde četl, že pokud je v javascriptu chyba, tak se vůbec neprovede. To tedy neplatí?

Těsně před odesláním příspěvku: Když jsem smazal řádky 9 a 10, také vše funguje. Teď už je v kódu vypsání daného článku pouze jednou a je mi téměř vše jasné: každý <script má narozdíl od PHP svá pouze ta vstupní data která si sám nabere, tudíž ten spodní se neprováděl a jediné co z něj ten předchozí používal bylo ono </script>.
Jen mi není jasné to, proč nemohu ono </script> napsat přímo tam, kam teoreticky patří. Mám chybu ještě někde jinde?
Darker
Profil
Když si v konzoli zobrazíš strukturu načtené stránky vypadá to jak?
Radek9
Profil
drvaca:
proč nemohu ono </script> napsat přímo tam, kam teoreticky patří
Můžeš, ale musíš to rozdělit:
document.write("<script src=\"novinka" + httpGetVars["clanek"] + ".js\"></" + "script>");
peta
Profil
document.write("<script src=\"novinka" + httpGetVars["clanek"] + ".js\"><\/script>");
Otazkou je, proc to tam pises? Proc nezavolas funkci pro vlozeni clanku?
Nebo, jeste by se to dalo resit tak, ze prepisujes src tagu script podle id.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: