Autor Zpráva
Kráťa
Profil
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
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
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
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
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
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
Tak ukážte JS kód, ktorý načíta externý súbor...
Kráťa
Profil
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
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
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
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
"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
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
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
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
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
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
"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
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
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
Leo přesně tak

Yuhů spíš jsem odpovídal na původní dotaz
Toto téma je uzamčeno. Odpověď nelze zaslat.