peterS.: Opera!

Beitrag lesen

gruss Bencun,

Beinahe alle meine Scripte funktionieren nicht mit Opera! An was

liegt das?

er ist halt etwas eigen;
   durchstoebere einfach mal die letzten 2/3 monate unter:
   http://www.teamone.de/selfaktuell/forum/archiv/2001/
   suche dort nach "opera" und lies mal nach;

Wie indentifiziere ich eigentlich Opera?
IE : if(document.all)...
NS4 : if(document.layers)...
NS6 : if(document.getElementById && !document.all)..
Opera: if(???)...

den musst Du direkt aus dem [navigator.userAgent] rauslesen,
   da ein opera benutzer einstellen kann, wie sich der browser
   identifizieren darf und zumindest der opera5 (opera < 5 hab'
   ich im moment nicht auf dem rechner) sowohl
   (document.getElementById) als auch (document.all) akzeptiert;

probier mal das hier - die zurueckgelieferten angaben sollten eigentlich stimmen:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>

<head>
<title>script-libraray: teil [01] -  c l i e n t P r o p e r t i e s - object</title>
<script language="JavaScript" type="text/javascript">
<!--
/* teil [01] -  c l i e n t P r o p e r t i e s - object  /  script-library  */
/*
 * stand : 14.august 2001
 * autor : Peter Seliger - pseliger@gmx.net
 *
 * inhalt: das [clientProperties]-objekt liefert informationen zu den gaengigsten
 *   browsern und betriebssystemen (NNAV,MSIE,Opera,Mozilla / win,mac,unix/linux)
*/

//alert(navigator.language);
//alert(navigator.browserLanguage);
//alert(navigator.appName);
//alert(navigator.appVersion);
//alert(navigator.userAgent);

// begin: C L A S S - [clientProperties]
//
// C O N S T R U C T O R
function clientProperties() {
 this.isNN3 = (((document.images) ? true : false) && !((document.layers) ? true : false) && !((document.all) ? true : false) && !((document.getElementById) ? true : false)); //alle Netscape 3.x und AEHNLICHE mit den gleichen eigenschaften !!!
 this.isNN4 = ((document.layers) ? true : false); //alle Netscape 4.x
 this.isNN6 = (((document.getElementById) ? true : false) && !((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("gecko") >= 0) && (navigator.userAgent.toLowerCase().indexOf("netscape6") >= 0)); //Netscape 6.x   - unterscheidung wegen unterschiedlich interpretierten schriftgroessen - NN4/NN6 faellt aus dem rahmen: [ (font-size)++ ]
  this.isMO = (((document.getElementById) ? true : false) && !((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("gecko") >= 0) && (navigator.userAgent.toLowerCase().indexOf("netscape") == -1)); //Mozilla 0.9.x/1.x; - unterscheidung wegen unterschiedlich interpretierten schriftgroessen - MO als auch OP und IEx interpretieren korrekt
 this.isIE4 = (((document.all) ? true : false) && !((document.getElementById) ? true : false)); //Microsoft Internet Explorer 4.x
 this.isIE5 = (((document.getElementById) ? true : false) && ((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("msie 5") >= 0) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)); //Microsoft Internet Explorer 5.x
 this.isIE6 = (((document.getElementById) ? true : false) && ((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("msie 6") >= 0) && (navigator.userAgent.toLowerCase().indexOf("opera") == -1)); //Microsoft Internet Explorer 6.x
 this.isOP4 = (((document.getElementById) ? true : false) && ((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("opera 4") >= 0)); //Opera 4
 this.isOP5 = (((document.getElementById) ? true : false) && ((document.all) ? true : false) && (navigator.userAgent.toLowerCase().indexOf("opera 5") >= 0)); //Opera 5
 this.isWin = (navigator.userAgent.toLowerCase().indexOf("win") >= 0);
 this.isMac = (navigator.userAgent.toLowerCase().indexOf("mac") >= 0);
 this.isX11 = ((navigator.userAgent.toLowerCase().indexOf("x11") >= 0) || (navigator.userAgent.toLowerCase().indexOf("linux") >= 0));
}
//
// end: C L A S S - [clientProperties]

// nur zum testen der klasse
var client = new clientProperties();

function clientPropertiesDraw() {
 var clientFontSize = ((client.isNN4 || client.isNN6) ? 3 : 2);
 var string = ''+
 '<font face="verdana,helvetica,geneva,arial,sans-serif">\n<table cols="2" rows="' + (client.length+1) + '" width="100" cellspacing="0" cellpadding="3" bordercolor="#000000" border="1">\n'+
 '<tr><td nowrap><font size="' + (clientFontSize+1) + '" color="#ffaa00"><b>[object].properties</b></font></td><td nowrap><font size="' + (clientFontSize+1) + '" color="#ffaa00"><b>dieses system</b></font></td></tr>\n';
 for (prop in client) {
  string += '<tr><td nowrap><font size="' + clientFontSize + '" color="#9f5f00"><b>client.' + prop + '</b></font></td><td nowrap><font size="' + clientFontSize + '" color="#ff7f00"><b>' + client[prop] + '</b></font></td></tr>\n';
 }
 string += '</table>\n</font>';
 return string;
}
// nur zum testen der klasse
//-->
</script>
</head>

<body>
<script language="JavaScript" type="text/javascript">document.write(clientPropertiesDraw());</script>
</body>

</html>

tschuess und by(t)e by(t)e  - peterS. - pseliger@gmx.net