Opera
René Marscheider
- browser
hi @all,
hi @all
mich ärgert der Opera wer kann helfen und sieht warum es nicht geht. An der roten Stelle einfach das selected in eine andere < option ... > setzen und Seite neu laden es sollte ein alert aufgehen mit dem value Wert der selected option und ja nach value das unter dem blau in der Seite erscheinen funzt mit allen Browsern nur der Opera will nicht.
Fehlermeldung von Opera:
Error: name: TypeError message: Value on left hand side of '.' is not convertible to Object: document.formular.D1.options[document.formular.D1.selectedIndex]
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <meta http-equiv="Content-Language" content="de"> <title>ISP Smtp Server anlegen / ändern</title>
</head> <body topmargin="15" leftmargin="15">
<table border="0" cellspacing="0" cellpadding="0" width="100%" height="100%"> <tr> <td align="center">
<br>
<script language="JavaScript" type="text/javascript"> <!-- document.write('text'); //--> </script>
<br>
<table border="1" cellspacing="0" cellpadding="1" width="520"> <form name="formular"> <tr> <td class="inhalt">
<table border="0" cellspacing="1" cellpadding="10" width="100%"> <tr class="tr"> <td><a href="java script:parent.TOC.fenster('/jana-admin/admin/help/smtpservers.htm','540');" onfocus="this.blur();"><script language="JavaScript" type="text/javascript"> <!-- document.write('text'); //--> </script></a></td> </tr> </table>
</td> </tr> <tr> <td><img src="/jana-admin/images/leer.gif" border="0" width="1" height="15"></td> </tr> <tr> <td class="inhalt">
<table border="0" cellspacing="1" cellpadding="5" width="100%"> <tr class="tr"> <td align="center" width="10%"><input name="C1" type="checkbox" value="ON" onfocus="this.blur();" ></td> <td width="90%"><script language="JavaScript" type="text/javascript"> <!-- document.write('text'); //--> </script></td> </tr> </table>
</td> </tr> <tr> <td><img src="/jana-admin/images/leer.gif" border="0" width="1" height="15"></td> </tr> <tr> <td class="inhalt">
<table border="0" cellspacing="1" cellpadding="5" width="100%"> <tr class="tr"> <td width="60%"><script language="JavaScript" type="text/javascript"> <!-- document.write('text'); //--> </script>:</td> <td width="40%"><input class="inp" name="T1" type="text" size="35" value=""></td> </tr> <tr class="tr"> <td><script language="JavaScript" type="text/javascript"> <!-- document.write('text'); //--> </script>:</td> <td><select name="D1" size="1"> <option value="0">Keine</option> <option value="1" selected>Pop vor Smtp</option> <option value="2">Username / Passwort</option> </select></td> </tr> </table>
</td> </tr> </table>
<br>
<table border="1" cellspacing="0" cellpadding="1" width="100%"> <tr> <td class="inhalt"><script language="JavaScript" type="text/javascript"> <!--
var fu = document.formular.D1.options[document.formular.D1.selectedIndex].value;
alert(fu);
with(document) {
if ( fu == 0 ) {
write('<table bgcolor="#ff0000" border="0" cellspacing="1" cellpadding="0" width="100%">' + '<tr class="tr">' + '<td> </td>' + '</tr>' + '</table>'); }
if ( fu == 1 ) {
write('<table bgcolor="#00ff00" border="0" cellspacing="1" cellpadding="5" width="100%">' + '<tr class="info">' + '<td colspan="2"><p align="justify"> </p></td>' + '</tr>' + '<tr class="tr">' + '<td width="50%">:</td>' + '<td width="50%"><select name="D2" size="1">' + '<option value="">Bitte wählen</option>' + '<option value="Server1">Server1</option>' + '</select>' + '</td>' + '</tr>' + '</table>'
+ '</td>' + '</tr>' + '<tr>' + '<td><img src="/jana-admin/images/leer.gif" border="0" width="1" height="15"></td>' + '</tr>' + '<tr>' + '<td class="inhalt">'
+ '<table bgcolor="#00ff00" border="0" cellspacing="1" cellpadding="5" width="100%">' + '<tr class="tr">' + '<td width="10%"><input class="inp" name="T4" type="text" size="3" value="" maxlength="2"></td>' + '<td width="90%"><p align="justify"> </p></td>' + '</tr>' + '</table>'); }
if ( fu == 2 ) {
write('<table bgcolor="#0000ff" border="0" cellspacing="1" cellpadding="10" width="100%">' + '<tr class="info">' + '<td colspan="2"><p align="justify"> </p></td>' + '</tr>' + '</table>'
+ '</td>' + '</tr>' + '<tr>' + '<td><img src="/jana-admin/images/leer.gif" border="0" width="1" height="15"></td>' + '</tr>' + '<tr>' + '<td class="inhalt">'
+ '<table bgcolor="#0000ff" border="0" cellspacing="1" cellpadding="5" width="100%">' + '<tr class="tr">' + '<td width="60%">:</td>' + '<td width="40%"><input class="inp" name="T2" type="text" size="30" value=""></td>' + '</tr>' + '<tr class="tr">' + '<td>:</td>' + '<td> </td>' + '</tr>' + '</table>'); } } //--> </script>
</td> </tr> </form> </table>
</td> </tr> </table>
</body> </html>
Danke René
Hallo Rene,
probiers mal mit
document.Testform.Auswahl.selectedIndex
oder http://selfhtml.teamone.de/javascript/objekte/options.htm#selected_index
Aber da du Opera besitzt, könntest mir auch einen gefallen tun.
ruf mal http://gigatrack.de/test/fenster2.htm auf
und klick auf den Button
dann sollte ein popup aufgehen
und wenn du das schliesst soll die Hauptseite wechseln.
IE&Netscape machen es, aber ich bin gespannt was Opera dazu sagt
schöne Grüsse aus Mannheim
wolli
Hallo Wolli
Aber da du Opera besitzt, könntest mir auch einen gefallen tun.
Aber gerne doch :-)
ruf mal http://gigatrack.de/test/fenster2.htm auf
und klick auf den Button
dann sollte ein popup aufgehen
und wenn du das schliesst soll die Hauptseite wechseln.
IE&Netscape machen es, aber ich bin gespannt was Opera dazu sagt
Klappt mit Opera 512. auf WinNT problemlos.
Viele Grüße aus Baden-Baden
Gerd
Hallo zusammen!
Klappt mit Opera 512. auf WinNT problemlos.
Mit Opera 6 auf Win98SE ebenfalls.
Gruß,
kerki
Dankeschön Gerd :-)
Hallo Wolli
Aber da du Opera besitzt, könntest mir auch einen gefallen tun.
Aber gerne doch :-)
ruf mal http://gigatrack.de/test/fenster2.htm auf
und klick auf den Button
dann sollte ein popup aufgehen
und wenn du das schliesst soll die Hauptseite wechseln.
IE&Netscape machen es, aber ich bin gespannt was Opera dazu sagt
Klappt mit Opera 512. auf WinNT problemlos.
Viele Grüße aus Baden-Baden
Gerd
Hallo wolli,
ruf mal http://gigatrack.de/test/fenster2.htm auf
und klick auf den Button
funktioniert auch im Opera 5.12 nach weiterleiten auf die Seite sagt Opera aber folgendes:
Error:
name: ReferenceError
message: Reference to undefined variable: No such variable 'ie'
gruss
René
Hallo !
Error:
name: TypeError
message: Value on left hand side of '.' is not convertible to Object: document.formular.D1.options[document.formular.D1.selectedIndex]
Ich persönlich finde folgende Syntax am einfachsten:
Im HTML-Tag:
<select id="testID" ...>
Im JavaScript:
var testwert=document.getElementById("testID").options[document.getElementById("testID").selectedIndex].value;
Damit kommt Opera >= 5 zurecht, und andere moderne Browser sollten es auch.
Gruß,
kerki
hi kerki,
Danke erst einmal für deine Antwort.
Error:
name: TypeError
message: Value on left hand side of '.' is not convertible to Object: document.formular.D1.options[document.formular.D1.selectedIndex]
Damit kommt Opera >= 5 zurecht, und andere moderne Browser sollten es auch.
es muß auch mit dem NN 4.x gehen! Das Problem ist ja nicht die Variable sondern das es übergangen wird. Es kommt ja nicht einmal ein alert siehe " alert(fu); " in meinem ersten Beitrag.
wenn ich diesen Code ganz allein teste ohne das andere drum herum funktioniert es auch mit Opera und das alert erscheint und gibt je nach dem das Value aus.
-----------------------------------
<html>
<head>
</head>
<body>
<form name="formular">
<select name="D1" size="1">
<option value="0">Keine</option>
<option value="1" selected>Pop vor Smtp</option>
<option value="2">Username / Passwort</option>
</select>
<script language="JavaScript" type="text/javascript">
<!--
var fu = document.formular.D1.options[document.formular.D1.selectedIndex].value;
alert(fu);
//-->
</script>
</form>
</body>
</html>
-----------------
Danke und gruss
René
hi kerki
Im HTML-Tag:
<select id="testID" ...>
Im JavaScript:
var testwert=document.getElementById("testID").options[document.getElementById("testID").selectedIndex].value;
Um nochmal auf deinen Vorschlag zurück zukommen wenn ich das in die Seite einfüge:
<select id="D1" name="D1" size="1">
var fu = document.getElementByID("D1").options[document.getElementByID("D1").selectedIndex].value;
sagt mir Opera folgendes:
Error:
name: TypeError
message: Attempted to call non-function: has undefined value: 'getElementByID'
gruss
René
PS: niemand macht den Opera schlecht ;-)
Hallo René!
Um nochmal auf deinen Vorschlag zurück zukommen wenn ich das in die Seite einfüge:
<select id="D1" name="D1" size="1">
var fu = document.getElementByID("D1").options[document.getElementByID("D1").selectedIndex].value;
sagt mir Opera folgendes:
Error:
name: TypeError
message: Attempted to call non-function: has undefined value: 'getElementByID'
Tja, das ist dumm! :-(
Ich könnte mir vorstellen, dass das Problem daher rührt, dass du den alert() auszugeben versuchst, bevor überhaupt das FORM, in dem der SELECT liegt, abgeschlossen ist.
Sicher bin ich mir aber keineswegs, und getestet habe ich es auch nicht, dafür war mir dein Code bzw. die Ausgabe, ehrlich gesagt, zu widerspenstig.
Gruß,
kerki
PS: niemand macht den Opera schlecht ;-)
Na, ich weiß nicht. Mir schwant Übles. ;-)
hi kerki & GerdG,
folgendes hat funktioniert:
---------------------------
...
var sel = document.formular.D1;
for ( i = 0; i < sel.length; ++i ) {
if ( sel.options[i].selected == true ) {
var fu = sel.options[i].value;
}
}
with(document) {
if ( fu == 0 ) {
...
-------------------------
ich verstehe es aber trotzdem nicht warum die erste Methode für sich allein funktioniert ind in die Seite eingebettet nicht. Danke noch mal Gerd für den Tipp mit der Seite.
gruss
René
PS: @kerki es gibt eigendlich keinen schlechten Browser nur schlechte Programmierer. Siehe bei mir, gibt eben doch in den meisten Fällen eine Lösung.
Hallo,
ich verstehe es aber trotzdem nicht warum die erste Methode für sich allein funktioniert ind in die Seite eingebettet nicht. Danke noch mal Gerd für den Tipp mit der Seite.
vielleicht ist es der Umstand dass Opera verschachtelte Variablen bzw. mehrere Ebenen im Ecmascript einfach nicht hinbekommt.
also prinzipiell (auch wenn Opera dieses konkret vielleicht noch hinkriegt)
statt:
xx= (yy.substr())+"sampl";
so:
zwischen=yy.substr();xx=zwischen+"sampl";
habe ich so ähnlich schon öfters extra für Opera nachge"bessert".
Grüsse
Cyx23