Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Předání hodnoty inputu do nově otevřeného okna

Mám okno, ve kterém je formulář, obsahující textové pole. Potřebuju, aby se po kliknutí na tlačítko v tomto okně otevřelo nové okno, rovněž obsahující formulář, do něhož potřebuju přenést hodnotu z pole v 1. okně. Potřebuju, aby to fungovalo min. v IE 6+, FF 3, Google Chrome.

Můj demo zjenodušený pokus
index.html (1. okno z něhož přenáším hodnotu):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <meta http-equiv="content-type" content="text/html; charset=windows-1250">
     <script src="pokus.js"></script>
  </head>
  <body>
    <form name="LANSA" method="post">
      <input type="text" id="text" value="0123456789" /><br /><br />
      <input type="button" id="butt_text" value="Přenes data" onclick="javascript: okno();" />
    </form>
  </body>
</html>
okno.html (2. okno, do kterého přenáším hodnotu):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <script src="pokus.js"></script>
  </head>
  <body>
    <form name="LANSA" method="post">
      <input type="text" id="text1" />
      <input type="text" id="text2" />
    </form>
  </body>
</html>
pokus.js
function okno() {
  var win = window.open("./okno.html", "", "");
  win.addEventListener("load", prenesData(win, document), false);
}

function prenesData(win, doc) {
  win.document.getElementById("text1").value = "ahoj"; 
  win.document.getElementById("text2").value = doc.getElementById("text").value;
}
V prvním řádku fce prenesData natvrdo přiřadím nějakou hodnotu prvnímu inputu - kontrola, že volání inputů v nově otevřeném okně je v pořádku. Ve druhém řádku pak přiřadím hodnotu z prvního okna.

Jenže:
1. Toto funguje v IE, Ve FF ani GCH se hodnoty nepředají (a to ani ta, co přiřazuji natvrdo). FF vypíše win.document.getElementById("text1").is null;
2. Přidám na začátek fce prenesData příkaz alert("prenesData()"); Nyní se hodnoty v IE 6 a FF vyplní, v GCh stále ne.
3. Zakomentuji alert a místo něj dám while, který by měl čekat, dokud se inputy nevytvoří:
while (win.document.getElementById("text2") == null) {
var a = 1;
}
V IE 6 funguje, v FF a Gch se věčně zacyklí.

Nemáte tip, jak to napsat, aby to fungovalo všude?

Odpověď na otázku

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny