Kuinka voisin tehä yksinkertaisen javascriptillä toteutetun sivun vaihtajan. Eli kun painan nappia niin se lataa halutun HTML documentin javascriptilla haluttuun paikkaa.
Jos meinaat että iframea käytät sivun sisällä, niin helpoin ratkaisu on tehdä divi jolle annat ID:n, ja jonka sisälle sitten kirjoitat aina kokonaisen iframe-koodin vaikka innerHTML:ää käyttäen (parempi tietysti jos W3C:n koodeja käytät, tosin silloin pitäisi myös heittää object-tagia kehiin muita selaimia varten, ja koodista alkaakin tulla monimutkaisempi; IE kuitenkin käytännössä vaatii iframen).
<div id="iframe"><iframe src="sivu.html" width="770" height="500"></iframe></div>
<script type="text/javascript"> var iframe = document.body.getElementById('iframe'); if( iframe ) { iframe.innerHTML = ''; iframe.innerHTML = '<iframe src="' + uudensivunnimi + '" width="770" height="500"></iframe>'; } </script>
Pelkkä attribuutin vaihtaminen ei riitä, koska ainakin Firefox bugailee siinä kohdin. Eli on pakko luoda aina kokonaan uusi elementti.
No olen just yrittäny saada ilman iframee toimimaan, mu se ei taida olla kovinkaa helppoa jos Javascriptillä ei pysty lukee niitä HTML tiedostoja ja sitten vaan printtaa ne ku tarvitaan. PHP:llä toi oliskin lii'ankin helppoa =D.
Lol-z kirjoitti:
...jos Javascriptillä ei pysty lukee niitä HTML tiedostoja ja sitten vaan printtaa ne ku tarvitaan.
Uskoisin että Ajax:illa tuon saa tehtyä melko helposti.
Ajaxhan nyt on vaan trendisana kuvaamaan parin eri tekniikan yhteiskäyttöä. Käytännössä tarvitsee vain XMLHTTPREQUESTin, joka utelee vaikka PHP-sivulta tietoa jossakin muodossa (JSONina, XML:nä tms.) - varmaan JSON olisi helpoin JavaScriptin kautta käsiteltynä, eli sivu lähetettäisiin valmiiksi suoritettavassa muodossa PHP-sivulta. Tosin tärkeää tässä on pitää huolta tietoturvasta, eli ettei varmasti tule väärästä paikasta tietoa, jolloin jos samalla sivulla olisi esim. tärkeitä käyttäjän tietoja, niin niitä ei päästäisi millään kaappaamaan.
No tarkotuksena on vain tehä mahdollisimman hienot sivut ilman mitään PHP:tä sen semmosta. Pelkkää HTML koodia johon on sitten laitettu sekaan CSS ja Javascriptiä. Ja mulla on ny ongelma tuo sivuvaihtaja, joka ny vois parhaiten onnistua Javascriptillä.
Jos sivujen määrä ja koko on säädyllisissä rajoissa (ja JavaScriptillä homman haluat välttämättä toteuttaa), yksi kätevä ja helppo tapa on läiskäistä kaikki tavara samalle sivulle ja piilottaa/näyttää kulloinkin haluttu osio JavaScriptin avulla. Tällöin sisältö näkyy myös niillä onnettomilla, joilla JavaScript ei jostain syystä toimi tai ei ole enabloituna.
Aihe on jo aika vanha, joten et voi enää vastata siihen.