Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[JS] window.opener.form is not defined

Pagina: 1
Acties:
  • 214 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Het probleem doet zich uitsluitend in FF voor, niet in IE.

Het direct opgeven van de naam van het formulier en het formulier veld werkt wel:
JavaScript:
1
2
3
function saveDate() {
   window.opener.document.MyForm.MyField.value = MyValue;
}


Echter dynamisch werkt het niet...
JavaScript:
1
2
3
function saveDate(MyFormField) { // MyFormField bevat 'MyForm.MyField'
   window.opener.document.getElementById('MyFormField').value = MyValue;
}


De foutmelding is:
window.opener.document.getElementById("MyForm.MyField") has no properties

Iemand een idee?

[ Voor 171% gewijzigd door Verwijderd op 30-11-2007 17:39 ]


Verwijderd

Topicstarter
Stom toeval kwam ik de oplossing alsnog tegen: getElementById werd al aangeroepen vanuit MyForm. Het volstaat daarom om slechts het Id op te vragen van MyField.

Kortom:

JavaScript:
1
2
3
function saveDate(MyField) { // MyField bevat 'MyField' 
   window.opener.document.getElementById('MyField').value = MyValue; 
}

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Verwijderd schreef op vrijdag 30 november 2007 @ 18:27:
Stom toeval kwam ik de oplossing alsnog tegen: getElementById werd al aangeroepen vanuit MyForm. Het volstaat daarom om slechts het Id op te vragen van MyField.

Kortom:

JavaScript:
1
2
3
function saveDate(MyField) { // MyField bevat 'MyField' 
   window.opener.document.getElementById('MyField').value = MyValue; 
}
Waarom er quotes om :? Het is een var, geen string.

JavaScript:
1
2
3
function saveDate(MyField, MyValue) { // MyField bevat 'MyField' 
   window.opener.document.getElementById(MyField).value = MyValue; 
}

edit:
Meestal schrijven we variablen ook met kleine letters, met hoofdletters komen van Pascal afaik, en in VB.NET gebruikt ge hoofdletters voor properties. Dit is niet NODIG, maar het is gewoon leuker, een beetje uniformiteit ;)

[ Voor 14% gewijzigd door Snake op 30-11-2007 18:32 ]

Going for adventure, lots of sun and a convertible! | GMT-8


  • ibmos2warp
  • Registratie: Januari 2007
  • Laatst online: 20-11-2023

ibmos2warp

Eval is Evil

Snake schreef op vrijdag 30 november 2007 @ 18:31:
[...]
Waarom er quotes om :? Het is een var, geen string.
Misschien omdat w3schools het zelfs met dubbele aanhalingsteken doet, en [url=http://developer.mozilla.org/en/docs/DOM:document.getElementById]mozilla weer met eentje. En dat als je naar document van w3.org kijkt, moet het naar mijn id met dubbele aanhalingsteken.

Ik weet alles van niks
Vind Excel ongelovelijk irritant.


  • Bitage
  • Registratie: April 2006
  • Laatst online: 25-11 12:33
ibmos2warp schreef op vrijdag 30 november 2007 @ 18:58:
[...]

Misschien omdat w3schools het zelfs met dubbele aanhalingsteken doet, en [url=http://developer.mozilla.org/en/docs/DOM:document.getElementById]mozilla weer met eentje. En dat als je naar document van w3.org kijkt, moet het naar mijn id met dubbele aanhalingsteken.
Daar wordt een vast ID aangesproken, niet de inhoud van een variabele...
function getValue()
{
var x=document.getElementById("myHeader")
alert(x.innerHTML)
}
myHeader is een vast gegeven: je weet al dat het element dat je wilt aanroepen "myHeader" heet.
Als je dit nog niet weet, moet je het dus uit een variabele aanroepen en dus NIET quoten.
function changeColor(newColor)
{
elem = document.getElementById("para1");
elem.style.color = newColor;
}
Idem

Voorbeeldje
code:
1
2
3
4
5
6
7
8
9
function dunnoWhatID(elemid)
{

  alert(document.getElementById(elemid).value);

}

HTML:
<input type="text" name="test" id="test" value="w00t javascript onmouseover shizzle thnxkbye" onmouseover="dunnoWhatID('test')">

[ Voor 7% gewijzigd door Bitage op 30-11-2007 19:10 ]