getElementById in verschiedenen Browsern?

niko001

Grünschnabel
Hi,

folgender Code funktioniert im IE7, jedoch nicht in Chrome, Safari, oder FF.

Code:
var myform = document.getElementById("myiFrame").Document.getElementById("myform");
myform.username.value = "test";
myform.key.value = "testpwd";
myform.submit();


in Verbindung mit dem HTML-Code:

HTML:
<iframe src="test.html" width="30%" height="200" name="myiFrame">
</iframe>
und
HTML:
<form name="myform" method="post" action="test_submit.html">
<input type="text" name="username" value="">
<input type="password" name="key" value="">
<input type="submit" value="Login">
</form>


Mit var myform = document.getElementsByName("myiFrame")[0].Document.getElementsByName("myform")[0];

statt getElementsById geht's auch nicht. Mir ist klar, dass im HTML-Code die Elemente so wie sie jetzt sind keine explizite ID haben, aber der HTML-Code kommt aus einem anderen Programm, den kann ich leider nicht ändern. Kann man nicht irgendwie nur über den Namen in Javascript referenzieren?


Danke!
Niko
 
Zuletzt bearbeitet:
Hi,

versuchs mal hiermit:

Code:
var myform = document.getElementById("myiFrame").document.getElementById("myform");
bzw.

Code:
var myform = document.getElementsByName("myiFrame")[0].document.getElementsByName("myform")[0];


mfg Maik
 
Wenn ich es mit

Code:
var myform = document.getElementsByName("myiFrame")[0].document.getElementsByName("myform")[0];

versuche, klappt es im IE nicht mehr (da geht es nur mit .Document), in der FF Fehlerkonsole kommt
document.getElementsByName("myiFrame")[0].document is undefined

Der zweite Schritt, also das referenzieren des iFrame-Codes klappt also irgendwie nicht :-(
 
Hi,

gib dem iFrame eine ID und keinen Namen und versuch es dann über das Objekt contentWindow.

Code:
var myform = document.getElementById("myiFrame").contentWindow.document.getElementsByName("myform")[0];

Ciao
Quaese
 
Ich hab's jetzt so gelöst, dass ich den Frames-Inhalt anders anspreche, nämlich über:

Code:
window.frames[0].document.getElementsByName("username")[0]

Das funktioniert in sämtlichen Browsern :-)

Danke für eure Hilfe!

Viele Grüße,
Niko
 
Hi,

schon klar, dass das die universellste Lösung ist - hat nur mit deiner Überschrift nur noch wenig gemein ;-)

Ciao
Quaese
 

Neue Beiträge

Zurück