Autor Zpráva
Freeman
Profil *
Ahoj :).
Po delší době řeším jednu otázečku... mám totiž stránku dělenou na dvě, hezky prasácky po staru framama. Je to prasárna, ale zároveň jediné možné řešení toho čeho potřebuju docílit. A už dva dny si lámu hlavu s tím jak zjistit na stránce že frame změnil adresu (že uživatel přešel v rámu jinam). Moje vize byla taková, že při kliknutí na frame se ověřila location rámu a pokud se shodovala s původní nic se nedělo, pokud ano provedlo to potřebnou funkci.

Bohužel, k mému zjištění mi u Frame nechce ani za boha fungovat funkce OnClick, zatímco třeba OnMouseOver funguje bez problémů...

Mohl by mi někdo poradit jak tohoto efektu docílit? Google i Diskusi mám prohrabanou křížem krážem a nikde nic... Nějáké nápady?

Děkuju moc!
_es
Profil
Freeman:
Bohužel, k mému zjištění mi u Frame nechce ani za boha fungovat funkce OnClick
Ukáž, ako to nefunguje.
Pri rámoch záleží aj na tom, kde je funkcia definovaná, v tom tvojom rozložení sú celkovo až tri objekty window.
Freeman
Profil *
Zatím mám zapsanou pouze jakousi "pokusnou" funkci a kód je
<frame name="obsah" onclick="this.location='http://seznam.cz';">
_es
Profil
Ak sú v jednotlivých rámoch stránky z rôznych webov, tak tie k sebe nemajú v JS z bezpečnostných dôvodov prístup.
Nejde o tento problém?
Ak nie, daj ukážku na stránku - aspoň rozloženie na rámy a skús lepšie vysvetliť o čo sa pokúšaš.
Freeman
Profil *
<html> 
<head> 
      <meta http-equiv="content-type" content="text/html; charset=utf-8"> 
      <title></title> 
      
      
    </head> <frameset rows="40,*" cols="*" framespacing="0" frameborder="0" border="0" onclick="alert('kliknul vul')"> 
    <frame name="lista" src="vykresli-listu.php" border="0"  frameborder="0" scrolling="no" style="padding-bottom:0; border:none; margin-bottom:0px;" framespacing="0" noresize> 
    <frame name="obsah" src="http://google.com" onClick="this.location='http://seznam.cz'" noresize style="padding-top:0; border:none; margin-top:0px;" framespacing="0"> 
    </frameset></html>


Toto je kompletní kód stránky a já bych potřeboval abych nějákým způsobem dokázal zjistit zda se změnila stránka v rámu obsah. Proto mě napadlo udělat nějakou funkci která při kliknutí ověří původní hodnotu rámu uloženou v proměnné, s aktuální location rámu obsah a pokud se adresy liší změní location rámu lista. Pokud změním onclick za onmouseover, vše funguje jak má.
_es
Profil
Freeman:
Čítal si 4. príspevok?
Celkovo tam máš tri rámy - objekty window: hlavný rám - celé okno, rám lista a rám obsah.
A vo všetkých tých troch rámoch môže byť JS.
Aby JS v hlavnom ráme alebo v ráme lista mohol zistiť, či, alebo na čo, sa kliklo v ráme obsah, tak by musel byť obsah rámu obsah načítaný z rovnakého servera ako zvyšné dva rámy. Čo očividne neplatí.
Atribút onclick sa nevťahuje na objekt window rámu obsah, ale len na element, v ktorom sa ten rám nachádza.
Ak by tie podmienky o rovnakom zdroji boli splnené, tak by malo fungovať, niekde na konci hlavného súbora:
<script>frames.obsah.document.onclick=function(){alert("Niekde v ráme obsah sa niečo kliklo.");};</script>
Freeman
Profil *
Diky moc, zkusím s tm něco provést. Todle jsem nevěděl. Děkuju.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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