[JS] Textinput krijgt [object Window] als value

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Door in onderstaande pagina op de button te klikken, opent zich een popup (src.htm) waar de gebruiker naar een plaatje kan browsen. Door in die popup op Submit te klikken, wordt het pad naar het gekozen plaatje teruggeven aan de hoofdpagina. Ik gebruik window.open ipv showModalDialog, omdat ik crossbrowser wil werken.

Probleem: op het moment dat je de popup opent (door op de button te klikken), verandert de value van de input box op de hoofdpagina in "[object Window]" bij FF en "[object]" bij IE. Waarom gebeurt dit? Hoe is dat op te verhelpen? Ik heb graag dat de oude waarde van de input box blijft staan, totdat er in de popup een nieuw plaatje (pad) is gekozen.

index.htm:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<script>
function getImage()
{
  left = (window.screen.width/2) - 150;
  top  = (window.screen.height/2) - 30;

  src = window.open('src.htm', 'src', 'height=60, width=300, left='+left+', top='+top);
  target = document.getElementById('image');
  target.value = src;
}
</script>

<input id="image" type="text" size="30">
<input type="button" onclick="getImage();" value="image">

src.htm:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
function closeWin()
{
   window.opener.document.getElementById('image').value = document.afbeeldingForm.imagename.value;
   window.close();
}
</script>

<form name="afbeeldingForm" enctype="multipart/form-data">
  Voeg deze afbeelding in: <input name="imagename" type="file"><br>
  <input type=button value="Submit" onClick="closeWin()">
</form>

[ Voor 27% gewijzigd door Reveller op 27-04-2005 23:11 . Reden: typo's en layout ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Probeer dit eens:
code:
1
<input type="button" onclick="getImage(); void(0);" value="image">

Verwijderd

Java:
1
2
3
4
5
6
7
8
// de variabele src bevat nu een referentie naar een window object
src = window.open('src.htm', 'src', 'height=60, width=300, left='+left+', top='+top);

// target wordt nu de input...  
target = document.getElementById('image');
  
// En nu ken je de waarde van src (een window object) toe als value aan de target
target.value = src;

Natuurlijk staat er dan object of iets dergelijks in je input. Ik snap uberhaupt die laaste target.value = src niet. Waarom doe je dat?

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
hooo! Een hele goede vraag Blues - net tijdens het tanden poetsen dacht ik nog eens dieper na en besefte dat de voud hem in de target.value = src zit...dat is nog een overblijfsel van begin deze avond, toen ik nog met showModalDialog werkte:
code:
1
2
src = showModalDialog(....
target.value = src

Stom |:( Tijd om naar bed te gaan...bedankt voor jullie reakties!

P.S. voor de search:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script>
function getImage()
{
  left = (window.screen.width/2) - 150;
  top  = (window.screen.height/2) - 30;

  window.open('src.htm', 'src', 'height=60, width=300, left='+left+', top='+top);
}
</script>

<input id="image" type="text" size="30">
<input type="button" onclick="getImage();" value="image">

[ Voor 38% gewijzigd door Reveller op 27-04-2005 23:31 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Een nieuwe vraag die met dit onderwerp verband houdt. Onderstaande code werkt perfect. Ik geef dan een waarde door aan een input box op de opener pagina:
code:
1
2
3
4
5
6
7
8
9
10
11
12
<script language="JavaScript">
function closeWin()
{
   window.opener.document.getElementById('image').value = document.afbeeldingForm.imagename.value;
   window.close();
}
</script>

<form name="afbeeldingForm" enctype="multipart/form-data">
  Voeg deze afbeelding in: <input name="imagename" type="file"><br>
  <input type=button value="Submit" onClick="closeWin()">
</form>

Maar hoe werkt het als ik een functie op de opener pagina wil aanroepen met een waarde die in de popup uitgelezen wordt?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
<script language="JavaScript">
function closeWin()
{
   var waarde = document.afbeeldingForm.imagename.value;
   window.opener.document.functie_op_opener(waarde);
   window.close();
}
</script>

<form name="afbeeldingForm" enctype="multipart/form-data">
  Voeg deze afbeelding in: <input name="imagename" type="file"><br>
  <input type=button value="Submit" onClick="closeWin()">
</form>

Dit werkt namelijk niet: "window.opener.document.functie_op_opener(); is not a value" maar functie_op_opener() bestaat wel degelijk. Als het al mogelijk is, zit er iets verkeerd in het "window.opener.document"-deel. Wat doe ik verkeerd?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • r0bert
  • Registratie: September 2001
  • Laatst online: 26-04 17:38
window.opener... || opener.... ?

edit:
[rml][ JS] met opener een functie aanroepen[/rml] ?

[ Voor 53% gewijzigd door r0bert op 28-04-2005 19:15 ]


  • Annie
  • Registratie: Juni 1999
  • Laatst online: 25-11-2021

Annie

amateur megalomaan

offtopic:
Ik wilde een verhaal gaan houden over functions en het window- i.t.t. het document-object. Maar zie dat ik dan in herhaling zou vallen... Ik word oud :+

Today's subliminal thought is:


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."

Pagina: 1