Autor | Zpráva | ||
---|---|---|---|
tomba Profil * |
#1 · Zasláno: 28. 1. 2007, 15:34:31
Ahoj, potřeboval bych radu ohledně JavaScriptu:-) Mám odstavec textu (popis výrobku), který potřebuji načítat do dvou html stránek - do jedné celý, do druhé pouze část. Když to udělám pomocí proměnné přímo v dané stránce, funguje to.
příklad: <script> var all = "celý text......"; document.write(all); var part = "část textu......."; document.write(part); </script> <p> <script> (all); </script> <P> <script> (part); </script> Nevýhodou tohoto řešení je, že ten zápis scriptu s textem musím vložit do každé html stránky. Chtěl bych to vylepšit, uložit celý text do jednoho externím scriptu a z něj načítat pouze části do html stránek. Nevím jestli v JS existují nějaká návěstí nebo fce, kterou lze vložit pouze část textu. Prosím poraďte nějaké řešení v JS. V PHP mi to je jasné, ale potřebuji řešení v JS a s komentářem jako pro lamu:-))) Předem díky. |
||
Joker Profil |
#2 · Zasláno: 28. 1. 2007, 16:00:48
Když už to musí být v JS, tak proč si prostě neuložit ty texty do nějakého pole v externím skriptu?
Jinak pokud ten částečný text je například začátek toho celkového textu, asi bych to udělal tak, že budu mít uložený zvlášť začátek a zbytek a pak vypíšu buď jen začátek, nebo obojí. Něco jako: var text = new Array() text["jednicka"] = new Array("začátek prvního"," konec prvního"); text["dvojka"] = new Array("začátek druhého"," konec druhého"); a potom třeba funkci: function getText(idText, cely){ if(!text[idText]) return(false); if(cely) return(text[idText][0] + text[idText][1]); else return(text[idText][0]) } Takže například getText("jednicka") vrátí "začátek prvního", getText("dvojka",true) vrátí "začátek druhého konec druhého" Pokud ty texty takhle skládat nelze, stačí místo částečných textů uložit kompletní a z řádku if(cely) return(text[idText][0] + text[idText][1]); vymazat tu tučně označenou část. No a tohle celé by se potom uložilo do nějakého .js souboru, který by se přilinkoval na každé stránce. |
||
tomba Profil * |
#3 · Zasláno: 28. 1. 2007, 19:40:57
Moc děkuju za obsáhlý návod a vysvětlení, muselo to dát spoustu práce:-)) Přesně něco takového jsem měl na mysli. Proměnné i fce jsem uložil do externího js, jen mi ještě prosím poraď jak to přesně nalinkovat, na tom jsem taky před tím ztroskotal. <script src="tvuj.js"></script> a co dál?
Díky moc. |
||
Časová prodleva: 3 dny
|
|||
tomba Profil * |
#4 · Zasláno: 31. 1. 2007, 08:39:25
jokere, pokud toto budeš číst, mohl bys mi prosím pomoct s tím přilinkováním? Díky předem. Samozřejmě přivítám radu od kohokoliv:-))))
|
||
Časová prodleva: 3 dny
|
|||
Joker Profil |
#5 · Zasláno: 3. 2. 2007, 11:40:11
Sorry, nějak to téma zmizlo v propadlišti, tak odpovídám až teď.
Co dál, to už záleží na tom, jak to konkrétně má na stránce vypadat. Může to být například takhle: popis.js: text["kladivo"] = new Array("Tohle je kladivo."," Váží půl kila"); (...) potom ta funkce getText výše A na stránce- jednoduchý příklad: <button onclick="javascript:alert(getText("kladivo", true))>Zobrazit popisek</button> - při kliknutí na tlačítko vyhodí okénko s textem "Tohle je kladivo. Váží půl kila" Další příklad: do souboru popis.js bych si připsal ještě další funkci: function nastavPopis(prvek,text,cely){ if(document.getElementById && document.getElementById(prvek)) document.getElementById(prvek).innerText = getText(text,cely) } ...První parametr je ID prvku, druhý ID popisku a třetí jestli celý nebo částečný popisek. Funkce nahradí vnitřek daného prvku textem popisku. No a potom na stránce: <p id="popisek">Pro zobrazení popisku musí Váš prohlížeč podporovat Javascript</p> <script type="text/javascript"> nastavPopis("popisek","kladivo"); </script> Výsledkem tohohle bude (pokud je zapnutý Javascript): <p id="popisek">Tohle je kladivo.</p> Případně kdyby se zavolalo: nastavPopis("popisek","kladivo",true); tak: <p id="popisek">Tohle je kladivo. Váží půl kila</p> |
||
Časová prodleva: 4 dny
|
|||
tomba Profil |
#6 · Zasláno: 7. 2. 2007, 18:18:44
díky jokere, ten druhý příklad vypadá dobře, vyzkouším to.:-))
|
||
Časová prodleva: 14 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0