Autor | Zpráva | ||
---|---|---|---|
abc Profil |
#1 · Zasláno: 18. 6. 2013, 21:39:06
Dobrý večer,
nenapadá Vás prosím někoho, jak obejít tuto chybu(?) Opery? Otevřu si popup okno: <a href="" class="" title="" onclick="window.open('popup.php','','width=800,height=600,left=0,top=0,resizable=1,scrollbars=1'); return false;">popup</a> A v popup oknu chci zavolat nějakou funkci definovanou v hlavním okně a popup zavřít: <script type="text/javascript"> opener.testAlert('aaa'); window.close(); </script> Ovšem stane se to, že se popup okno v Opeře nezavře a musím ho zavírat ručně. V jiných prohlížečích je to ok. Takže nevíte prosím náhodou někdo, jak to vymyslet, aby to fungovalo i v Opeře? testAlert je samozřejmě definovaná v okně hlavním: function testAlert(str) { alert(str); } |
||
_es Profil |
#2 · Zasláno: 18. 6. 2013, 21:59:50
abc:
Vyskúšaj funkciu testAlert definovať nejako inak, lebo metóda alert na inom okne môže znamenať aj fokus do toho okna.. Alebo, prečo nevoláš funkciu, definovanú v otváranom okne?
|
||
abc Profil |
#3 · Zasláno: 18. 6. 2013, 22:29:37
_es:
Vyzkoušeno, máš pravdu, když tam není alert, tak se okno normálně zavře. Je to z toho důvodu, že celá aplikace běží v iframu, ale potřebuji tam implementovat platební bránu, která se do iframu nevejde (iframe zvětšit nelze), tak otevřu popup, platební brána se vyřídí, vrátí nějaký result a ten si potřebuju dostat zpátky do iframu a podle toho se nějak dál zachovat. Myslím, že toto je vhodné řešení, nebo tě napadá nějaké elegantnější řešení? |
||
_es Profil |
#4 · Zasláno: 18. 6. 2013, 22:37:43
abc:
Môžeš na „medzioknovú“ komunikáciu použiť aj len globálne premenné/vlastnosti iného okna. Netreba používať metódy s efektmi, pre ktoré sú v niektorých prehliadačoch zakázané či obmedzené. |
||
abc Profil |
#5 · Zasláno: 18. 6. 2013, 22:39:33
_es:
Problém ale je, že hlavní okno přeci nebude vědět, kdy už v popup okně potřebná data jsou? |
||
_es Profil |
#6 · Zasláno: 18. 6. 2013, 22:54:15
abc:
„kdy už v popup okně potřebná data jsou“ A tie„potrebné dáta“ tam sú kedy? Keď je ukončené načítanie toho „popup okna“, alebo kedy? Ak je schopné tú udalosť zachytiť to poup okno, tak to môže „zachytiť“ aj iné okno. |
||
abc Profil |
#7 · Zasláno: 18. 6. 2013, 22:58:58
_es:
Ta platební brána právě funguje tak, že se celá stránka přesměruje na platební bránu a ta potom vrátí výsledek na nastavenou stránku. Tzn. 1) otevřu popup 2) přesměruju na bránu 3) uživatel libovolně dlouho vyplňuje údaje o platební kartě apod. 4) probíhá platba 5) brána přesměruje zpátky na nějakou stránku 6) v popup okně se spustí skript, který vyhodnotí, že se má předat result z brány, a že se má zavřít a zbytek ošetří hlavní okno |
||
_es Profil |
#8 · Zasláno: 19. 6. 2013, 06:07:15
abc:
„v popup okně se spustí skript, který vyhodnotí, že se má předat result z brány, a že se má zavřít a zbytek ošetří hlavní okno“ No a prečo sa to „popup okno“ nezavrie samé? |
||
abc Profil |
#9 · Zasláno: 19. 6. 2013, 14:19:08
„No a prečo sa to ‚popup okno‘ nezavrie samé?“
Omlouvám se, ale nerozumím. Popup okno předá nějaké funkci v okně hlavním result z brány a následně se zavře. A potom už se dál vše zpracovává v okně hlavním. |
||
_es Profil |
#10 · Zasláno: 19. 6. 2013, 15:58:26
abc:
A problém je teda vyriešený? „hlavní okno přeci nebude vědět, kdy už v popup okně...“ „Hlavné“ okno môže rovnako „vedieť“, čo sa deje v tom „popup okne“ ako samotné „popup okno“ a opačne. |
||
abc Profil |
„A problém je teda vyriešený?“
Jasně, díky, už díky radě ve [#2] „‚Hlavné‘ okno môže rovnako ‚vedieť‘, čo sa deje v tom ‚popup okne‘ ako samotné ‚popup okno‘ a opačne.“ Teď už to bude trochu mimo off-topic, ale jak to máš na mysli? |
||
_es Profil |
abc:
„...jak to máš na mysli?“ Že môže byť trebárs všetok JS kód len v „hlavnom“ okne, aj ten, ktorý bude potom „obsluhovať“ to vyskakovacie. Ak ten alert treba, tak by možno stačilo volať funkciu alert nad vyskakovacím oknom, nie nad „hlavným“. |
||
Časová prodleva: 11 let
|
0