Window.opener – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Window.opener – JavaScript, AJAX, jQuery – Fórum – Programujte.comWindow.opener – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

don_Dominique0
Super člen
23. 8. 2007   #1
-
0
-

Zdravim, mám problém: na jedné stránce mám otevření okna ve kterém je formulář a po odeslání tohoto formuláře potřebuji aby se některá data předala zpět do stránky ze které toto okno bylo otevřeno dělám to pomocí

window.opener.form.date.value="...";

a i přesto, že v tomto okně je
<form name=form .....

<input type="hidden" name="date" .....

tak mi chybová konzola hlásí : window.opener.form has no properities
Nevíte prosím co mám špatně ? Děkuji !

Nahlásit jako SPAM
IP: ...–
Prog.0
Věrný člen
27. 8. 2007   #2
-
0
-

skus:

<form name="form" id="form" ...

window.opener.getElementById('form')....


alebo:
<input type="hidden" name="date" id="date" ...

window.opener.getElementById('date').value=


name sluzi na pomenovanie prenasanych dat v prenose, v js sa mu snaz vyhybat a pouzivaj hlavne id...

Nahlásit jako SPAM
IP: ...–
Prog.
Petroff0
Věrný člen
3. 9. 2007   #3
-
0
-

Udělal jsem ti stránku, která ti snadno předvede výsledky použití různých výrazů k ukládání hodnoty z INPUTu vytvořeného okna do INPUTu openeru.
Hlavně snadno zjistíš, že to funguje v každém browseru. Tedy pokud máš potíže s NAME, bude to něčím jiným - kdyby přetrvávaly, hoď zdroják k dispozici, za ty hodiny co jsem to tvořil jsem narazil na pěknou řadu úskalí (co se týče spolupráce 2 dokumentů).

<!-- Testováno a plně funkční: IE 6/7 FF2 Opera9.2 -->

<html><head><title>Change FORM ELEMENT in OPENER</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script>
var win;
function button(txt){
var f,p,b;
f=win.document.getElementById("formB");
p=win.document.createElement("P");;;;
f.appendChild(p);
b=win.document.createElement("BUTTON");
b.style.paddingLeft = "1ex";
b.style.width = "52ex";
b.style.textAlign ="left";
b.onclick=function(){var e=eval("win."+txt);e.value=(++win.document.formB.paramB.value)};
b.innerHTML=txt;
p.appendChild(b);
}
function openF(){
win=window.open("about:blank","_blank","width=400,height=400,resizable");
win.document.open();
win.document.write("<html><head><title>CHILD_WINDOW</title></head><body onunload='opener.win=null'>");
win.document.write("<form name='formB' id='formB' action='#' onsubmit='return false'>");
win.document.write("<p> paramB <input name='paramB' type='text' value='0' /> </p>");
win.document.write("</form></body></html>");
win.document.close();
button("opener.document.forms[0].elements[0]");
button("opener.document.forms[0].elements['paramA']");
button("opener.document.forms['formA'].elements[0]");
button("opener.document.forms['formA'].elements['paramA']");
button("opener.document.forms[0].paramA");
button("opener.document.formA.paramA");
button("opener.document.getElementById('idA')");
button("opener.document.getElementById('formA').paramA");

win.moveBy(0,300);
win.focus();
}
</script>
</head>
<body onunload='if(win) win.close()'>
<form name='formA' id='formA' action="#" onsubmit='window.close()'>
<hr />
paramA <input type= 'text' value='' name='paramA' id='idA' />
<input type='button' value='Otevři formulář' onclick='if(!win || !win.document) openF(); else win.focus()' />
<input type='submit' value='Ukonči aplikaci' />
<hr />
</form>
</body>
</html>

Otevři formulář => otevře okno,popř. je zviditelní bylo-li zakryté
INPUT pole v otevřeném okně je určeno jen pro číselné hodnoty!!! navíc se automaticky mění po každém použití (x<=x+1)
Chceš-li experimentovat => nové tlačítko vytvoříš vložením volání: button("xxxxxxx");
kde xxxxxx je výraz odkazující do okna opener do formuláře name='formA' id='formA' na text.input name='paramA' id='idA'

Nahlásit jako SPAM
IP: ...–
Petroff0
Věrný člen
16. 10. 2007   #4
-
0
-

Omlouvám se za chybičku - zkusil jsem kód zkopírovat v IE (ten ignoruje formát textu => vypouští znaky odřádkování) a spustit ,
nefungoval, popř. házel chyb. hlášky.
Zjistil jsem, že chybí 1 středník => OPRAVENO (pro jistotu jsem dal 4;;;;)

Nahlásit jako SPAM
IP: ...–
don_Dominique0
Super člen
18. 10. 2007   #5
-
0
-

Jo díky ale nakonec sem to vyřešil i pomocí toho name . : stačilo za to opener naspat ještě document.

Nahlásit jako SPAM
IP: ...–
zdendaj
~ Anonymní uživatel
1 příspěvek
8. 9. 2010   #6
-
0
-

Poradí mi někdo s podobným problémem?
V IE6 stačilo v js napsat např.
<script...>
function zavrito() {
window.opener=self;
self.close()"; }
</script>
a okno se zavoláním zavrito() bez ptaní zavíralo. Využitelné pro spouštěcí stránku, která naformátuje jinou stránku (width=,height=.left=,top=,...) a pak se setTimeoutem sama zavře a nezavazí. V IE7 a IE8 už nefunguje a klasicky se ptá konfirmačním oknem "Webová stránka, kterou prohlížíte, se pokouší... Ano/Ne".
Dá se s tím něco?
Ď.
mihola at seznam dot cz

Nahlásit jako SPAM
IP: 89.176.153.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Window location — založil Standa

Shell ve window$ s návratem — založil neimenuje

Window server - cloud — založil Kubas129

Cyklus for python window — založil Petr Herynk

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý