Autor Zpráva
johndoe
Profil
Ahoj, prosím o radu...

do pole si ukládám otevíraná okna, ktera se oteviraji funkci otevri() :

okna = new Array();
index = 0;

function otevri() {
okna[index] = window.open( ... )
index++;
}

pro zavirani mam funkci cca takovouto :

function zavri_okna() {
for (i = 0; i < opened_windows.length; i ++ ) {
if(!okna[i].closed) {
okna[i].close()
}
}
okna = Array();
index = 0;
}

pak ale potrebuju stranku obcas reloadnout , ale tim se pole i index smazou, resp. nastavi na hodnoty pri deklaraci ...
ale ja bych potreboval mit zachovane (nebo nejak prenesene) to pole okna[] , abych je mohl pozavirat i po reloadu stranky ...

diky moc za jakoukoli radu nebo tip ...
Hooonza
Profil *
Cookies?
johndoe
Profil
Asi to tak dopadne ... chtěl jsem se jim vyhnout :)
peta
Profil *
johndoe
= jakpsatweb - javascript - priklady - vychytavky - precteni GETvars
= lepe cookies
= nebo jeste pres window.opener() nebo pres objekt window typu top/parent, prace s framy (objekt window - poslednich 0 radku)
= nebo PHP sesny a prevest to proste pres PHP
johndoe
Profil
peta
diky za obsahlou odpoved. Přenos vlastní textové hodnoty ale není mým problémem, ten se dá opravdu řešit ktermýmkoli z popsaných způsobů. Tak ale přenesu textovou informaci.

Potřeboval bych ale přenést identifikátor těch oken jako objekt, na kterém pak funguje metoda .close() ...

řešením by bylo přenést názvy jako text některým z výše popsaných způsobů, a pak ta okna "dohledat" podle toho textového názvu něco jako document.getElementById(nazev) - obávám se ale, že pomocí document. budu těžko hledat objekt window. :(
peta
Profil *
johndoe
je videt, ze jsi si kapitolu obketk window vubec neprohledl. Pak je zbytecne ti tuto radu davat.
Tak mi laskave rekni, jak mi funguje refresh na mem chatu?
http://mracek.hostuju.cz/chat/
Ok, napis 2-3 zpravy...
A popis mi princip refresh, kdyz jej nedelem prave tim zpusobem pres 2 okna. Akorat misto opener vyuzivam framy.
Hooonza
Profil *
johndoe
Když to zkouším, hodnoty pole zřejmě zůstávají pro původní html soubor zachované, při prostém reloadu stejně jako když stránku se skriptem zavírám a otevírám, okna otevřená javascriptem jdou normálně zavřít:

***********
<html>
<script>
pepa = window.open('','pepa','');
pepa.document.write('pepa');

anna = window.open('','anna','');
anna.document.write('anna');
</script>

<input type=button value="Close Pepa" onclick="pepa.window.close();"><br>
<input type=button value="Close Anna" onclick="anna.window.close();">
***********

Takže, abys dosáhl toho, co chceš, otevři okna pod pojmenovanou proměnnou, potom už nemusíš dál zřejmě dělat vůbec nic, normálně je pod tou proměnnou zavřeš (viz http://www.jakpsatweb.cz/javascript/objekt-window-metody.html#close) :-)
Hooonza
Profil *
Aha, tak nefunguje to úplně tak přesně, jak to píšu, tady se okna znovuotevírají při každém dalším načtení souboru, takže je pak jde zavřít... Pokud se okna neotevřou znovu, uzavřít nejdou.
Toho by se dalo využít! To, co můžeš udělat, je "znovu" to otevřená okna "otevřít" (projet znova funkcí otevri() ) - a ona zůstanou otevřená tak jak byla, neotevírají se nová další okna. Takto "znovuotevřená okna" uzavřít javascriptem jdou!
Bude potřeba ošetřit ev. zpracovaná data v otevřených oknech před "znovuotevřením", s tím už by ale neměl být problém:-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0