Autor | Zpráva | ||
---|---|---|---|
Kráťa Profil |
#1 · Zasláno: 20. 12. 2004, 06:54:36
Napadlo mě, že kdyby se dal nějak načíst HTML soubor třeba do divu (něco jako je include), bez použití PHP, tak bych se krásně zbavil <iframe>. Jde to nějak udělat?
Zkrátka mám soubor s menu, který se mi načítá do <iframe> a že by se načítal nějak jinak :-) |
||
izsak Profil |
#2 · Zasláno: 20. 12. 2004, 07:24:35
Ide to pomocou SSI (Server Side Includes), ale to je znovu serverová technológia a to asi nechceš.
Čiže nie, nejde to spraviť. Ale aj tak obyčajné vkladanie HTML súboru do iného súboru nie je vhodné bez ďalšej úpravy, pretože dokument bude obsahovať napr. 2x <!DOCTYPE>, <html>, <body> a pod. Vkladaný súbor treba najprv vhodne upraviť, alebo vkladať len súbor, ktorý obsahuje časť HTML stromu. |
||
Kráťa Profil |
#3 · Zasláno: 20. 12. 2004, 07:29:06
No já to mám na mujwebu a tam práve ani serverové scripty nepodporují. Navíc by to nefungovalo (se serverovým scriptem) ve verzi off line.
|
||
Hugo Profil |
#4 · Zasláno: 20. 12. 2004, 07:29:45
Ja si myslim, ze by to melo jit pomoci JavaScriptu. Nactes soubor, ktery do divu napr. pomoci neco.innerHTML vypusti to menu. Ale bezi to na strane klienta, takze se na to neda moc spolehnout.
|
||
izsak Profil |
#5 · Zasláno: 20. 12. 2004, 07:36:21
V offline verzii to bude fungovať. Treba rozlišovať medzi serverovými skriptami (programom) a ich výstupom. V offline verzii sa zobrazí ich výstup - tzn.: z vášho "pohľadu" to bude fungovať.
Riešenie JS je neprístupné a JS tiež neumožňuje načítanie externého (dátového) súboru. A vlastnosť innerHtml je už nedoporučené používať... |
||
Hugo Profil |
#6 · Zasláno: 20. 12. 2004, 07:55:38
Ja jsem pochopil verzi offline,jako ze nekde vystavi svuj web zazipovany. Pak by to fungovalo (samozrejme v zavislosti na klientovi).
Ja vim, ze innerHTML neni idealni, ale bylo to to nejjednodusi reseni. |
||
izsak Profil |
#7 · Zasláno: 20. 12. 2004, 07:58:22
Tak ukážte JS kód, ktorý načíta externý súbor...
|
||
Kráťa Profil |
#8 · Zasláno: 20. 12. 2004, 08:14:07
Ne ne js jsem ani neměl na mysli. S tou off line verzí, jako je třeba ke stažení JPW, tak by při off line nefungoval, kdyby byt např. PHP a nebylo to puštěné z Apache či něčeho.
|
||
izsak Profil |
#9 · Zasláno: 20. 12. 2004, 08:35:00
Ešte môžeš použiť preprocesor PPWizard, ktorý vám vygeneruje statické HTML súbory. Viacej o PPWizard je na interval.cz alebo www.sovavsiti.cz
|
||
Hugo Profil |
#10 · Zasláno: 20. 12. 2004, 08:39:48
izsak
Samotny JS samozrejme nedokazenacist externi soubor, ale pokud primo do toho souboru se skriptem vlozis menu jako obsah promenne, tak se to potom da vypsat primo do HTML. |
||
Yuhů Profil |
#11 · Zasláno: 20. 12. 2004, 08:52:39 · Upravil/a: Yuhů
Reaguji na původní dotaz:
obsah souboru do <divu> nijak jednoduše načíst nejde. Rozhodně na to neexistuje html příkaz. Možná řešení se dají rozdělit do tří kategorií: * řešení na straně serveru (např. PHP) * řešení na straně klienta (nějaký javascript nebo iframe) * řešení na straně autora (např. zmíněný PPWizard) Takže řešení na straně serveru: PHP, SSI. To zřejmě podle dotazu tak nechceš. V praxi jde pravděpodobně o nejjednudušší řešení považované za standardní. Řešení na straně klienta: Javascript, ale velmi omezený. Jak výše správně poznamenal izsak, neexistuje javascript, který umožňuje načíst externí soubor. Javascript se buďto musí velmi dobře přepsat do nějakého strukturovaného pole v syntaxi javascriptu, nebo do XML. Druhá možnost je právě mít vkládaný soubor uložený jako XML, načíst jej nějak (třeba přes skrytý iframe) do dokumentu a rozparsovat standardními DOM metodami javascriptu. Už dlouho se chci podívat na to, jak se to přesně dělá. Vizte seriál Jakuba Havla na zive.cz. Další možnost na straně klienta je použití tagu <iframe>. Je to velmi omezené a chová se to jinak, než chceš. Řešení na straně autora: Před publikováním stránek na server je třeba obsah toho vkládaného souboru do výsledných stránek vložit. V extrémním případě ručně přes schránku. V praxi se vyplácí to dělat nějakým programem. Oblíbený je PPWizard, který mi třeba ale přijde trochu málo pochopitelný (jen osobní názor). Já osobně používám dva způsoby sestavování výsledných stránek z různých souborů. Jednak program FrontPage, který přesně na tohle má příkaz. Dokáže si do stránky vložit značku, kterou při ukládání stránky nahradí zvoleným souborem. Velmi pěkná a užitečná věc. Další možný postup jsou takzvané DWT šablony, které umí FrontPage 2003 a Dreamweaver 2004 (možná i starší verze DW). Druhý způsob, který používám, pracovně nazývám "PHP kotlík". V jednom adresáři mám PHP šablony, které si sahají pro soubory do druhého adresáře. Při spuštění dávky cyklu, který dělá zhruba toto: php -q soubor > jiny_soubor , se mi vygenerují všechny hotové soubory do třetího adresáře. Všechno to dělám na lokálu a přes eFTýPko hodím výstupní adresář na server. Na serveru nepotřebuji PHP a také to celé funguje off-line. Vkládání souborů vlastně obsahuje třeba i šablonovací systém EasyBlogu. Naopak velmi pěkný jazyk XSLT nemá (pokud vím) žádný mechanismus pro skládání stránek z různých zdrojových souborů, což jej pro tvorbu složitějších webů téměř diskvalifikuje. |
||
Leo Profil |
#12 · Zasláno: 20. 12. 2004, 10:34:56
"Druhá možnost je právě mít vkládaný soubor uložený jako XML, načíst jej nějak (třeba přes skrytý iframe) do dokumentu a rozparsovat standardními DOM metodami javascriptu."
V Mozille (a spol.) se to dela standardnimi metodami DOM, ale v IE - vsech verzi - si clovek nevrzne, a musi se pouzit ActiveX. Z tohoto duvodu je cteni XML ze serveru JavaScriptem prakticky nepouzitelna. Leos Ondra |
||
Kráťa Profil |
#13 · Zasláno: 20. 12. 2004, 10:38:23
Ach jo, neni. Mrknu na ten PPWizard, co to vlastně je a asi zůstanu u těch jednoduchých <iframe>. Jeden je k vidění na www.srandovnik.wz.cz
Dík |
||
Kráťa Profil |
#14 · Zasláno: 20. 12. 2004, 13:07:28
Tak já ještě počkám, až zavedou tag <paste>, či něco takového a pak to bude přímo krása a pohoda:
<div class="menu"> <paste> menu.htm </paste> </div> :-) :-) :-) |
||
Yuhů Profil |
#15 · Zasláno: 20. 12. 2004, 13:32:35
Leo:
> v IE - vsech verzi - si clovek nevrzne, a musi se pouzit ActiveX ne ne, právě na to je ten skrytý iframe. Je to nějaký trik, jednou mi to dokonce fungovalo v IE, Mozille a v Opeře najednou. |
||
Yuhů Profil |
#16 · Zasláno: 20. 12. 2004, 13:33:17
Kráťo, <paste> nezavedou. To mohli udělat před devíti lety, teď je na to pozdě (škoda, že to neudělali).
|
||
Fred Profil |
#17 · Zasláno: 20. 12. 2004, 15:05:02
Javscriptem to jde v kombinací se skrytým iframe, protže se často někdo ptá na různý menu přes iframe apod. mám to ležet tady http://xy.wz.cz/iframe/demo.html je to upravený zdroj z http://www.stilleye.com/
|
||
Leo Profil |
#18 · Zasláno: 20. 12. 2004, 16:30:29
"ne ne, právě na to je ten skrytý iframe. Je to nějaký trik, jednou mi to dokonce fungovalo v IE, Mozille a v Opeře najednou."
Ja myslel, ze se bavime o stazeni a analyze XML souboru JavaScriptem, ne zmene obsahu iframe. Leo |
||
Yuhů Profil |
#19 · Zasláno: 21. 12. 2004, 00:59:00
Frede, vůbec nechápu, co to tvoje demo dělá. Řešíme tady načtení a parsování xml dokumentu javascriptem. Jsi si jistý, že to je ono?
|
||
Leo Profil |
#20 · Zasláno: 21. 12. 2004, 01:09:05
To demo jsem moc nezkoumal, ale podle me zmeni src neviditelneho iframu, nacte jeho obsah a praskne ho jako innerHTML do divu. Takze stahuje HTML kod a vicemene dela copy & paste do kodu stranky, Leo
|
||
Fred Profil |
#21 · Zasláno: 21. 12. 2004, 14:02:47
Leo přesně tak
Yuhů spíš jsem odpovídal na původní dotaz |
||
Časová prodleva: 20 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0