cross window scripting

  • Onderwerp starter Onderwerp starter deeq
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

deeq

Gebruiker
Lid geworden
27 aug 2008
Berichten
13
Hallo,
Om in een formulier een veld in te vullen kan er vanuit een ander venster een keuze worden gemaakt, dit venster sluit en de waarde staat netjes in het juiste input field.
ik heb de volgende code, maar ik weet niet hoe ik ervoor zorg dat waneer op het knopje naast het tweede input field word gedrukt ook het resultaat in het juiste form field komt.
Ik weet wel dat dan hier: "window.opener.document.form1.inputfield1.value = symbol;" inputfield2 moet komen maar hoe krijg ik dat daar??


...........//// Lijst.html ( de popup dus) ////..............

<html><head>
<script language="JavaScript" type="text/javascript">
<!--
function pick(symbol) {
if (window.opener && !window.opener.closed)
window.opener.document.form1.inputfield1.value = symbol;
window.close();
}
// -->
</script>
</head>
<body>
<a href="javascript:pick('Keuze1')">keuze1</a></td>
<a href="javascript:pick('Keuze2')">keuze2</a></td>
<a href="javascript:pick('Keuze3')">keuze3</a></td>
<a href="javascript:pick('Keuze4')">keuze4</a></td>
<a href="javascript:pick('Keuze5')">keuze5</a></td>
<a href="javascript:pick('Keuze6')">keuze6</a></td>

</body>
</html>

..........//// formulier de opener ////.............

<html><head>
<script language="JavaScript" type="text/javascript">
<!--
function showList() {
sList = window.open("lijst.html", "name", "width=150,height=210");
}

function remLink() {
if (window.sList && window.sList.open && !window.sList.closed)
window.sList.opener = null;
}
// -->
</script>
</head>
<body>
<form name="form1" id="form1">
vul in: <br />
<input type="text" name="inputfield1" size="10" value="" /><input type="button" value="kies uit de lijst" onclick="showList()" /><br />
<input type="text" name="inputfield2" size="10" value="" /><input type="button" value="kies uit de lijst" onclick="showList()" /></form>
</body>
</html>
 
Bij het openen van de popup geeft de opener door aan de popup welk element de waarde moet ontvangen. En "window.opener.document.form1.inputfield1" is geloof ik achterhaald. Inplaats daarvan gebruikt dit script "window.opener.document.getElementById()". Dat moet ook wel, want het geeft de ID door aan de popup.

Daarnaast controleert dit script of window.opener wel wordt gedefinierd, en zo niet dan wordt die goed gezet.


Lijst.html:
Code:
<html><head>
<script language="JavaScript" type="text/javascript">
<!--
function pick(symbol) {
if (window.opener && !window.opener.closed)
{
  var target = window.opener.document.getElementById(window.targetInput);
  target.value = symbol;
}
  window.close();
}
// -->
</script>
</head>
<body>
<a href="javascript:pick('Keuze1')">keuze1</a></td>
<a href="javascript:pick('Keuze2')">keuze2</a></td>
<a href="javascript:pick('Keuze3')">keuze3</a></td>
<a href="javascript:pick('Keuze4')">keuze4</a></td>
<a href="javascript:pick('Keuze5')">keuze5</a></td>
<a href="javascript:pick('Keuze6')">keuze6</a></td>

</body>
</html>

opener:
Code:
<html><head>
<script language="JavaScript" type="text/javascript">
<!--
function showList(input) {
  sList = window.open("lijst.html", "name", "width=150,height=210");
  if (!sList.opnener)
    sList.opener = window;
  sList.targetInput = input;
}

function remLink() {
  if (window.sList && window.sList.open && !window.sList.closed)
    window.sList.opener = null;
}
// -->
</script>
</head>
<body>
<form name="form1" id="form1">
vul in: <br />
<input id="input1" type="text" name="inputfield1" size="10" value="" /><input type="button" value="kies uit de lijst" onclick="showList('input1')" /><br />
<input id="input2" type="text" name="inputfield2" size="10" value="" /><input type="button" value="kies uit de lijst" onclick="showList('input2')" /></form>
</body>
</html>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan