Autor Zpráva
Hluchavka
Profil
Dobrý den,
nevím si rady a proto se obracím na Vás, na odborníky.

Mám problém s iframy. Nevím jak zajistit, abych mohl zobrazit stránku v jednom iframu po
kliknutí na odkaz v druhém iframu. Lze to vůbec? Nebo existuje nějaká jiná varianta?
Třeba použití klasických framů?
Bubák
Profil
Lze to vůbec?
Úplně obyčejně atributem target tagu <base> nebo odkazu.

Nebo existuje nějaká jiná varianta?
Udělat stránku normálně, bez rámů.
ultrax
Profil
[#1]
do kódu k danému iframu dopíš: name="iframe1" -týmto ten iframe pomenuješ
a do odkazu dopíš target="iframe1" -týmto sa odvoláš na ten iframe
mestolipnik
Profil
Dobrý večer.

Nevěděl jsem si rady s podobným problémem, něco málo mi pomohlo vyřešit rada od ultrax, ale jen částečně. Já bych potřeboval poradit s trošku jiným zadáním:

na stránce mám trvale iframe. Po načtení stránky se v iframe zobrazí stránka dle toho co si nadefinuji. Do tohoto iframe na této stránce ale potřebuji načítat obsah jiných stránek, ale z odkazů umístěných na dalších místech dané stránky, dostupné po odrolování. Načtení obsahu jsem vyřešil dle rady ultraxe, ovšem já bych ještě potřeboval, aby se mi současně "odrolovala" stránka na viditelnou pozici kde je umístěn iframe, protože zadáním target="iframe1" se toto něřeší. Dokážete prosím poradit? Předem děkuji.
Mistr
Profil
mestolipnik
Vyřešily by Tvůj problém kotvy neboli záložky?
mestolipnik
Profil
Vyřešily by Tvůj problém kotvy neboli záložky?

No myslím že určitě, o záložkách vím a používám je, ovšem vůbec netuším, jak skloubit to, aby po kliknutí na odkazy se stránka narolovala do pozice, aby byl viditelný obsah iframe, ve kterém se zároveň zobrazí požadovaná stránka. Možná svůj dotaz pokládám blbě, nevím.
Mistr
Profil
mestolipnik
A co tohle, pomohlo by?
mestolipnik
Profil
A co tohle, pomohlo by?

Obávám se že ne, myslím že si vůbec nerozumíme co potřebuji. Takže jsem vytvořil takový jednoduchý názorný příklad, kde je vše popsané, co potřebuji dosáhnout, snad to bude srozumitelnější. Odkaz je zde:

Odkaz

Předem dík za radu jak to rozchodit.
Johnik
Profil
Někde nahoru si dej kotvu s id='iframe'. Samozřejmě nahoru nad iframe. A pak na odkaz dáš:

<a href='' target='nameIframu'><a href='#iframe'>text odkazu</a></a>


Nebo jak psal Mistr:

<a href="#iframe" onclick="parent.iframe.location.href='nejaka.html'">text odkazu</a>
mestolipnik
Profil
Tak fakt si s tím nevím rady. Zkoušel jsem to ale nefunguje mi to. Mohl bys mi prosím názorně napsat kod pro např. odkaz č. 1 v ukázce zde ? Nebo alespoň jestli nemáš nějaký odkaz na stránky, kde toto již funguje, abych viděl názorný příklad. Předem dík
zvěřiňák
Profil
Takhle si uděláš kotvu:
<p id="ram">
	<iframe height="305" frameborder="0" width="450" scrolling="no" name="okno_iframe" marginwidth="0" marginheight="0" border="0" framespacing="0" src="podstrana0.htm">text</iframe></p>

Do odkazu č.2:
<h2 onclick="location.href='#ram'"><a href="podstrana2.htm" target="okno_iframe" title="klikni"> 2/ A pozor zde je odkaz - klikni</a></h2>
Mistr
Profil
mestolipnik
Zkusme tohle:

V kódu stránky si uprav:
<iframe id="okno_iframe" width="450px" height="305px" marginwidth="0" marginheight="0" border="0" frameBorder="0" framespacing="0" src="podstrana0.htm" scrolling="no">text</iframe>


A jednotlivé odkazy pak dělej v podobě:
<a href="#okno_iframe" onclick="parent.okno_iframe.location.href='podstrana1.htm'">1/ A pozor zde je odkaz - klikni</a>


Přičemž podstrana1.htm je stránka, která se má zobrazit v iframe. Ještě upozorním, že podstrana1.htm je obalená apostrofy, nikoliv čárkami.


Funguje to?
mestolipnik
Profil
Mistr
Použil jsem tvůj kod - výsledek viz zde je to přesně to co jsem potřeboval mnohokrát uctivě děkuji ! :-) moc mi to pomohlo.

Pro ostatní kteří se snažili pomoci také patří dík. Ted to ještě musím zapasovat do finální stránky jsem hrozně zvědav jak to bude ve finále fungovat.

P.S. Tak mě ještě teď napadá jedna maličkost, spíš takový detail, jestli je možné nějakým způsobem zajistit, aby se stránka narolovala do pozice tak, aby bylo vidět i kousek obsahu stránky nad iframe? když totiž použiji kod viz v ukazce, tak se zobrazí začátek iframe na horní hranici stránky, hodilo by se mi kdyby bylo možné nějak určit pozici zobrazení, ale to už je fakt detail, i bez toho to funguje super.

Moderátor Mistr: Tip pro příště: Budeš-li chtít na někoho reagovat, klepni na jeho jméno v levém sloupečku. Automaticky se Ti pak zkopíruje dolů do okna pro vpis Tvého příspěvku. Ulehčí Ti to, myslím, práci.
mestolipnik
Profil
Aha, tak je tu problém. V IE 7 vše funguje jak má, ale zkoušel jsem to v jiném prohlížeči - SeaMonkey no a tady je problém, že po kliknutí na odkaz se sice stránka naroluje k iframu, ovšem už nenačte požadovaný obsah, což je dost zásadní problém. Dá se ten kod nějak odladit aby to fungovalo i v jiných prohlížečích?
zvěřiňák
Profil
mestolipnik
Tak zkus vyzkoušet ten můj způsob. Je to takový jednodužší, takže je naděje, že to bude chodit napříč prohlížeči. A kotvu, na kterou skáčeš, tu si můžeš, samozřejmě, umístit na stránce kam chceš.
Mistr
Profil
mestolipnik:
zkoušel jsem to v jiném prohlížeči - SeaMonkey no a tady je problém, že po kliknutí na odkaz se sice stránka naroluje k iframu, ovšem už nenačte požadovaný obsah, což je dost zásadní problém
Je JavaScript povolen?

je možné nějakým způsobem zajistit, aby se stránka narolovala do pozice tak, aby bylo vidět i kousek obsahu stránky nad iframe?
Ano, možné to je. Jak na to? jak již radil kolega zvěřiňák ([#15]), vlož na požadované místo, kam se má stránka odrolovat záložku neboli kotvu, tedy třeba
<a name="sem_se_odroluj"></a>


Následně si pak uprav můj kód do podoby:
<a href="#sem_se_odroluj" onclick="parent.okno_iframe.location.href='podstrana1.htm'">1/ A pozor zde je odkaz - klikni</a>


nebo případně zvěřiňákův kód do tvaru:
<h2 onclick="location.href='#sem_se_odroluj'"><a href="podstrana2.htm" target="okno_iframe" title="klikni"> 2/ A pozor zde je odkaz - klikni</a></h2>
mestolipnik
Profil
Mistr zvěřiňák
Takže pánové odpovídám pro vás oba najednou. Nejdříve děkuji za vaši ochotu, s jakou se mi snažíte pomoct. Nicméně stále se mi nedaří docílit kýženého výsledku. Po úpravách kodu (tedy jestli jsem to zapsal správně) to stále nefakčí na 100%. Nejlepší metoda se mi jeví od Mistr, tady to funguje v IE7 naprosto bez problémů, roluje do potřebné pozice i načítá stránku do iframe. Ovšem v SeaMonkey to bohužel nefachčí. Odrolování proběhne, bohužel nenačte požadovadou stránku do iframe. Nevím jestli to dělá i ostatním, nebo jiné prohlížeče, zkrátka mě to nejde. A myslím že Javascript mám povolen, respektive odkazy vyloženě dělané Javascriptem fungují normálně. Tobě Mistr a příp. i ostatním to funguje v jiných prohlížečích? pokud ano, co musím povolit (kde přesně), aby to fungovalo i mě? Jde o to, jestli potencionální návštěvníci s podobným problémem budou bádat po příčině, proč se jim něco nezobrazí, nehledě k tomu, že třeba ani nebudou vědět co a jak se má zobrazit.
Metoda zvěřiňák je podle mě úplně nepoužitelná. Odrolování funguje, ale požadovaná stránka se nenačte do iframe, ale otevře se do nového okna. takže opět špatně.

Takže já vážně nevím kde je chyba, dokážete to někdo rozchodit tak aby to fungovalo na co nejvíce prohlížečích?

Opět odkaz s názorným příkladem.
zvěřiňák
Profil
<iframe height="305" frameborder="0" width="450" scrolling="no" src="podstrana0.htm" framespacing="0" border="0" marginheight="0" marginwidth="0" id="okno_iframe">text</iframe>

Tady máš chybku. Musí tam být name="okno_iframe".
Potom už to chodí docela dobře.
mestolipnik
Profil
zvěřiňák
člověče fakt že jo taková prkotina! děkuji mockrát za trpělivost, tentokrát to již funguje jak potřebuji. :-)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: