Autor Zpráva
Vitality
Profil
Dobrý den,
Mám stránku kde uživatel zadává (to je v podstatě jedno co) do <input>u. Po určité kontrole a stisknutí tlačitka, je-li vše v pořádku otevře se nové okno (window.open). Problém je ten. Že chci v novém okně které se otevře zobrazit obsahy(value) inputu z okna prvního. Poradte jak na to.
P.S.-zkoušel jsem obyčejný js document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value; přitom jsem vkládal stejný externi js kod pro prvni a druhou stranku. Avšak nejde to, asi protože to hledá ID jenom v okně které momentálně js kod používá.. Možná nějak ty obsahy inputu ulozit a pak je vyvolat, no prostě poradte pls jak na to.
Joker
Profil
Vitality:
Potřebujete tu hodnotu předat jednorázově ve chvíli kdy se otvírá to okno, nebo vytvořit nějaké propojení, že když se uživatel přepne zpátky a změní ten input, aby se aktualizovala i hodnota ve druhém okně?
Vitality
Profil
Joker:
ne, aktualizovala ne. Pokud změní hodnotu v prvním okně a stikskne tlačitko tak se stejně otevře nové okno, takže jednorázově kdy se okno otevře. Jak na to? :) Můžu vložit na uložto těch pár stránek pro bpřibližení situace :)
_es
Profil
Vitality:
je-li vše v pořádku otevře se nové okno (window.open)
zkoušel jsem obyčejný js document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;

Metóda window.open má návratovú hodnotu - objekt toho nového okna - treba volať metódy na ňom:
var noveOkno = window.open(...);
noveOkno.onload = function(){tu zadaj príkazy na zmenu obsahu toho nového okna.};
Chamurappi
Profil
Reaguji na Vitalityho:
Také v tom nově otevřeném okně máš ve skriptech přístup k window.opener, což je rodičovské okno a ve window.opener.document je jeho document, takže z něj si můžeš také lovit hodnoty value. (Samozřejmě, že veškerá meziokenní JS komunikace vyžaduje, aby obě stránky byly na stejné doméně.)

Můžu vložit na uložto těch pár stránek pro bpřibližení situace :)
Ne, nenuť nikoho, od koho chceš radu, opisovat CAPTCHA kód. Chceš-li situaci přiblížit, ulož stránky někam, kde je uvidíme naživo.
Vitality
Profil
_es:
var noveOkno = window.open(...);
noveOkno.onload = function(){tu zadaj príkazy na zmenu obsahu toho nového okna.};
jakože udělám něco takového?
noveOkno.onload = function(){document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;};. Nefunguje to.. obsah inputu v nově otevřeném okně je pořád prázdný :/


Chamurappi:
Ted jsem si vzpomněl že je mám na interneru, jinak zatím pracují pouze v osobním pc ve stejné složce. Odkaz je: http://bte2012.wz.cz/pages/utility/thevenin/thevenin_opacity.html, je to starší verze ale princip to přiblíží. Pokud do všech červených poli zadáte kladné číslo tak má vyskočit nové okno, v uvedeném odkazu ještě tato možnost není :)

+
Můžu poprosit o malé přibližení praci s window.opener? Alespon uvedení nějakého jednoduchého příkladu, díky moc

Zkoušel jsem daný kod a nejde to. Nevím jestli někde dělám chybu..
function openWin()
{
var mywindow=window.open ("vypocet.html","","menubar=1,resizable=1,width=350,height=250");
mywindow.focus();
mywindow.moveTo(900 , 900);
//mywindow.onload = function(){
var id1Strana = document.getElementById('iu');
var id2Strana = window.opener.document.getElementById('roru');
id2Strana.value = id1Strana.value;

}
input s id "iu" je na první stránce, input s "roru" je na nově otevřené...
_es
Profil
Vitality:
jakože udělám něco takového?
noveOkno.onload = function(){document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;};

Globálne vlastnosti druhého okna musíš volať cez objekt toho okna:
noveOkno.onload = function(){noveOkno.document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;};
Vitality
Profil
_es:
nefunguje.. zkouším všelijak.. noveOkno.onload = function(){noveOkno.document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;};
i noveOkno.onload = function(){noveOkno.opener.document.getElementById(id_druhaStranka).value=document.getElementById(id_prvniStranka).value;};
_es
Profil
Vitality:
nefunguje..
Ukáž: Povídání o živých ukázkách. Z hentoho ťažko tipovať, čo robíš zle.
Vitality
Profil
_es
fajn.
s těmi obsahy value to ted bude složité, mě stačí jak vyjde alespon tohle a už budu vědět jak dál:
---------------------------------------------------------------------------------------------------------------------------------
obsah window1.html:
<script>
function myFunction(){
var mywindow=window.open ("window2.html","","menubar=1,resizable=1,width=350,height=250");
mywindow.onload = function(){mywindow.document.getElementById('blabla').value="99";};
nebo takto taky nejde :   //mywindow.opener.document.getElementById('blabla').value="99"; 
////////ještě jsem nějak zkoušel ale bylo toho hodně už nevím co všechno :D nic nešlo vysledek pořád stejný
}
</script>  
<input id="iu" type="text" value="55">
<button id="button" onclick="myFunction()" >Počítej</div>
---------------------------------------------------------------------------------------------------------------------------------
obsah window2.html:
<input id="blabla" type="text" value="">

window1 má pouze input s obsahem 55. Když kliknu na tlačitko otevře se window2 ve scriptu by po načtení stránky input ve window2 měl mít obsah 99 ale bohužel nemá, nevím čím to je, ale at zkouším jak zkouším, vysledek je pořád stejný=>input v window2 je pořád prázdný..
_es
Profil
Vitality:
Asi nastáva problém pri takom priradení udalosti onload. Použi druhý spôsob, spomenutý v [#5]. Daj do window2.html hneď za ten input:
<script>document.getElementById('blabla').value=opener.document.getElementById('iu').value</script>
Vitality
Profil
_es:
<script>document.getElementById('blabla').value=opener.document.getElementById('iu').value</script>
vložil jsem ten script za input... ale ani po tomlhe to nejde, input window2.html zůstává pořád prazdný..
Vitality
Profil
_es:
FUNGUJE!!!!
konečně to funguje!

<script>document.getElementById('blabla').value=opener.document.getElementById('iu').value</script>
tenhle script vyřešil muj problem. Díky moc za pomoc :)
Problém byl v tom že jsem si to otevíral ze složky google chromem, a celý den jsem nemohl přijít na to proč mi to nejede když na internetu stejným způsobem řeší problémy všichni. Zkusil jsem window1 otevřit ve firefoxu a kupodivu to fungovalo. Nevím čím je to zpusobeno, ale chrom prostě nechtěl spolupracovat. Pokud ale chromem se dívám ta window1 a window2 přes domenu na internetu je to bezproblemové.Viz odkaz: http://bte2012.wz.cz/pages/utility/window1.html. Muj problém je vyřešen, díky

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: