Autor | Zpráva | ||
---|---|---|---|
Freeman Profil * |
#1 · Zasláno: 23. 7. 2010, 10:15:20
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 |
#2 · Zasláno: 23. 7. 2010, 11:07:32
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 * |
#3 · Zasláno: 23. 7. 2010, 15:17:47
Zatím mám zapsanou pouze jakousi "pokusnou" funkci a kód je
<frame name="obsah" onclick="this.location='http://seznam.cz';"> |
||
_es Profil |
#4 · Zasláno: 23. 7. 2010, 15:51:03
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 * |
#5 · Zasláno: 23. 7. 2010, 20:56:00
<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 |
#6 · Zasláno: 23. 7. 2010, 23:28:30 · Upravil/a: _es
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 * |
#7 · Zasláno: 24. 7. 2010, 10:26:42
Diky moc, zkusím s tm něco provést. Todle jsem nevěděl. Děkuju.
|
||
Časová prodleva: 14 let
|
0