Stránka 1 z 1

[Javascript] Dědění objektu window

Odeslat příspěvekNapsal: 28. 7. 2013 16:27
od nofire
Zdravím,
můžete mi prosím někdo poradit ? Mám stránku "1", na ní tabulku s daty a tlačítko, které mi otevře okno "2" pomocí window.open :
Kód: Vybrat vše
window.open('nova_zakazka.asp?strZakazka=<%= session("id_zakaznika") %> ','_blank', 'toolbar=no, menubar=no, scrollbars=yes, width=710px, height=850px');

Na tomhle nově otevřeném okně "2" vyplním ve formu nějaký údaje a kliknutím na tlačítko se mi otevře okno "3" a pomocí window.close se zavře okno "2".
Kód: Vybrat vše
<script type="text/javascript">
    window.open('zakazkac.asp ','_blank',' toolbar=no, menubar=no, scrollbars=yes, width=710px, height=850px');
    window.close();
</script>

Na okně "3" vyplním další údaje, uložím je a okno zavřu. Já bych ale potřeboval aby se mi při uzavření okna "3" aktualizovaly data v tabulce na stránce "1". Stačí mi když se znova odešle form na stránce "1" pomocí : window.opener.document.jmeno_formu.submit();. To mi ale nefunguje, protože okno "3" bylo otevřelo z okna "2" a ne ze stránky "1". Já bych potřeboval vědět jestli nějakým způsobem jde aby okno "3" zdědilo po okně "2" to, že bylo otevřeno pomocí window.open... .

Snad jsem to vysvětlil srozumitelně. ;-) . Díky za pomoc

Re: [Javascript] Dědění objektu window

Odeslat příspěvekNapsal: 29. 7. 2013 16:43
od Vebloud
No sice už jsem s čistým JS bez jakéhokoliv frameworku nějákou dobu nedělala, ale pokusím se poradit.

První věc co mě napadá, že pro uživatele to musí být docela šílenost, otevírají se a zavírají se okna, nešlo by to přes wizarda v jednom okně? Co se vlastně snažíš udělat, že tam vyrábíš taků šílenost.

A teď k tomu, jak to vyřešit.
1) Mohl bys otevírat okno tři nikoliv z okna 2, ale přes window.opener z okna jedna.

2) Nemusíš otevírat nové a zavírat starě, ale přes window.open(URL,_self,.. to otevřít v okně dvě.

3) Udělat to nějákým lepším způsobem pro uživatele, pžes wizarda v jednom okně.

Re: [Javascript] Dědění objektu window

Odeslat příspěvekNapsal: 29. 7. 2013 17:50
od gandor
Dalsia vec je, ze vzhladom na to ze by vsetko malo bezat na jednej stranke (domene) mozno nepride k restrikciam od browsera k ovladaniu. V tom pripade by malo stacit predavat si referencie.
window.open ma tiez navratovu hodnotu -> otvorene okno (window objekt). Otvorene okno ma zasa referenciu na parenta cez window.parent...
s okna 3 na okno 1 by sa malo dat dostat cez window.parent.parent (tento objekt treba ulozit do lokalnej premennej skvor ako sa zavola window.parent.close())...
Jo a samozrejme k dostaniu sa obsahu lubovolneho okna ide. Staci pouzit [zvoleny window objekt].document

Re: [Javascript] Dědění objektu window

Odeslat příspěvekNapsal: 31. 7. 2013 11:43
od nofire
UF :shock: kam se poděla moje odpověd paní Velbloudovi ... No nic napíšu to znova.

Ono to vypadá složitě, ale v podstatě jde o to, že uživatel má stále otevřenou stránku s tabulkou, kde mu průběžně přibývají do tabulky zakázky ze dvou středisek (stránka 1).

Když chce přidat zakázku nebo jen zákazníka do databáze, klikne na "Nová zakázka" a otevře se formulář (stránka 2). Je prý pro ně lepší nechat si otevřenou stránku s tabulkou, nevím proč, ale takhle to chtějí. Po zapsání registrační značky se vyhodnotí jestli zákazník už je v databázi nebo ne. Pokud ano přitáhnou se data do formuláře z databáze, pokud ne vyplní se potřebný údaje.

Pokud jde o opravu a ne jen o zapsání zákaníka do databáze, klikne se na Zakázkový list, okno 2 se zavře !!!, a do formu (stránka 3) se napíše co se bude opravovat a podobný kecy. Tenhle form už má bodobu faktury, ta se vytiskne a dá zákazníkovi. Někdy tedy chtějí zapsat jen zákazníka do databáze a to je potom zbytečný dělat zakázkový list, takže ten systém 3 stránek má možná svoje opodstatnění.

To jen na vysvětlenou. Uživatel má tedy otevřenou stále stránku s tabulkou a navíc vždy pouze jedno další nemší okno.

Díky Gandore za tip, tahle cesta vypadá schůdně.

Díky