ugrás a tartalomhoz

Gomb submitálásra és ugrásra

tóthika · 2015. Aug. 30. (V), 22.01
Sziasztok!

Éppen egy tiszta (JS nélküli) weboldalt szeretnék létrehozni, melyen a tartalom-értékeléshez iframe-t használok. Mikor megnyomok egy gombot, szeretném, hogy az ahhoz tartozó tartalom töltődjön be, majd pedig ugorjon oda az iframe-hez.
Form nélkül a Submit-ra rákattintva a link működik, viszont form elembe zárva márcsak a tartalom-betöltés része működik. Ez valami védelem lenne?
Ha kicsit zavaros volt, tessék:
Kép1
A képen található egy horgony, melyhez a gomb megnyomásával (pl. mellette lévő) odaugrana, de eközben az iframe-be egy másik tartalmat kellene betöltenie. Erre azért van szükség, mert több ilyen, szöveges blokk is van, melyekhez a lehetőséget ugyanúgy megadjuk.

Illetve, hogyan adjak alap body-t az iframe-nek? Lehet egyszerűen, 'pure' HTML segítségével, vagy csakis az src attribútummal, egy max.-ra feltekert cache time-mal rendelkező oldallal egybekötve?

Köszönöm a segítséget!
 
1

Link, gomb

Poetro · 2015. Aug. 31. (H), 08.47
A gomb ugye egy HTML input vagy button elem? Az űrlapnak megadhatsz action és target attribútumot.
2

Részben

tóthika · 2015. Aug. 31. (H), 08.56
Az action és a target paraméter már le van kezelve az iframe-hez. Ehhez az iframe-hez pedig a szülőoldalon oda kellene ugrani.
3

iframe

Poetro · 2015. Aug. 31. (H), 09.54
Egyébként miért is van szükség az iframe-re? És hol van az űrlap? Az iframe-ben vagy a szülő oldalon? És miért kell ennyire bonyolítanod az életedet?
4

<nincs cím>

tóthika · 2015. Aug. 31. (H), 10.36
Szóval:
Adott egy div, melyben tartalom van. A divhez tartozik egy gomb, mellyel további div (tartalom, pl. komment) adható hozzá. Ha egy ilyen tartalomhoz (pl. komment) szeretnénk további tartalmat adni (további hozzászólás - fa struktúrában), ahhoz le kell kérni egy speciális formot, hogy tudassuk a szerverrel, ahhoz a hozzászóláshoz szeretnénk hozzászólni. Viszont, mivel az iframe magassága dinamikusan csak js-sel állítható, így mivel amúgy is lenne egy ilyen elem a fő tartalomhoz (tartalom értékelése), abba szeretném a speciális formot betölteni. Mivel ez az iframe lehet, hogy egy-két oldallal lentebb helyezkedik el, oda kellene ugrania a szülő oldalnak. A szülő oldalban van az iframe, az iframe-be pedig a formot töltenénk be.


Szeretnék tiszta HTML és CSS kóddal operálni. Ahol pedig elérhető a JS, ott később megoldható a teljesen dinamikus honlap. Nem szeretném, ha a biztonság miatt kikapcsolt JS miatt a látogató egy lebénult oldalt nézzen meg. Tud majd tartalmat generálni, de az oldal csak korlátozottan tud működni.
5

AJAX

Hidvégi Gábor · 2015. Aug. 31. (H), 11.30
Ha jól értem, az oldal újratöltését szeretnéd megspórolni. Szerintem is így macerás lesz, mert az iFrame magassága állandó.

Miért nem olyanra csinálod meg, mint a weblabor, az is működik JS nélkül, ha pedig van JS, akkor AJAX segítségével végzed a megfelelő tartalmak betöltését?
6

Igen, így szeretném

tóthika · 2015. Aug. 31. (H), 13.01
Igen, így szeretném megoldani. Az iframe állando magassága nem probléma, mert abban már van egy másik, tartalom-hozzáadó form.
Az utolsó mondatod lenne a célom. Sőt, már pár oldalt így megcsináltam. Mivel ennek az oldalnak nemcsak egy szűk(ebb) réteget kellene kiszolgálnia, legelőször JS nélkül csinálom meg. Ha elérhető JS, kigyomlálom az iframeket, és ajax-szal, vagy websockettel rákapcsolódok a szerverre, és folyamatosan kérdezgetem őt.

A lényeg: van egy gomb a szülő oldalon, ami egy formban van. Csak egy gomb (submit). Ezt kellene úgy megcsinálni, hogy miközben egy iframe-be betöltünk egy másik oldalt a gomb formja alapján (target), ugorjon a szülő oldal egy megadott linkre, jelen esetünkben az iframe-hez.

Esetleges, másik út lenne az, hogy azt a részt, amiben a gomb van, beteszem egy iframe-be, és azt a keretet töltöm újra, egy másik tartalommal.


A témához nem kapcsolódik, de Javascript alapján le lehet kérdezni, mikor aktív a lap, és mikor nem?
7

Fókusz

Hidvégi Gábor · 2015. Aug. 31. (H), 21.13
window.onfocus = function() { console.log('fókusz'); };
window.onblur = function() { console.log('elmosódás'); }