abfrage ob css enabled ist
sven steiner
- css
0 Utz Grimminger0 Michael Vogel0 Hobbes0 sven steiner0 Swen
zu allererst....
ich habe mal wieder das ganze forum durchsucht und auch schon
einen ansatz gefunden. naemlich diesen:
<html>
<head>
<title>css-abfrage</title>
</head>
<body>
<div>test</div>
<script language="JavaScript">
if (document.all[0].style) { alert("ie") }
if (document.layers[0]) { alert("ns") }
</script>
</body>
</html>
funkt im ie super. er macht brav einen alert. aber netscape macht
einfach gar nichts. weiss jemand wie man es anders loesen kann?
vielen dank im voraus
sven
Hi Sven,
if (document.all[0].style) { alert("ie") }
if (document.layers[0]) { alert("ns") }
Das Problem ist - die If-Abfrage überprüft, ob es den Layer mit der Index-Nummer 0 gibt. Wenn Du aber keine Layer definiert hast, gibt es ihn auch nicht. Was Du vermutlich suchst ist die Abfrage, ob der Browser das LayerObjekt kennt (nämlich nur NS 4.x), das geht so:
if(document.layers) { ... }
Was mir aber nicht klar ist - was hat das mit einer CSS-Abfrage zu tun?
Grüße,
Utz
Was mir aber nicht klar ist - was hat das mit einer CSS-Abfrage zu tun?
Hallo
Ich nehme mal an, dass er davon ausgeht, dass der Netscape Navigator kein CSS versteht, was ja durchaus stimmt. Die paar Dinge, die er kennt...
Bloed nur, dass bei der Abfrage wohl auch der IE 4.0 als CSS-faehig erkannt werden kann.? Der IE 4.0 ist aber nicht unbedingt besser als NN 4.xx
MfG
Thomas
hi utz,
das problem ist, das wenn ich nach document.layer abfrage
also if (document.layers) {....} ist es egal ob sie aktiv
oder deaktiv geschaltet habe. er macht die abfrage auf jeden
fall.
?-)
sven
Hi sven,
du warst mit deinem beispiel schon auf dem richtigem Wege:
<html>
<head>
<title>css-abfrage</title>
</head>
<body>
<div>test</div>
<script language="JavaScript">
if (document.all[0].style) { alert("ie") }
if (document.layers[0]) { alert("ns") }
</script>
</body>
</html>
Nur ist für den NN4.x ein <div> ohne die CSS Angabe position: relative/absolute kein Layer.
Füge folgendes in den <head> Bereich hinzu:
<style type="text/css">
<!--
.norm
{
position: absolute;
}
-->
</style>
und ändere das <div>:
<div class="norm">test</div>
Dann bringt der NN auch die alert-Box und du weißt, dass CSS eingeschalten ist.
mfg
ALEX
hi alex,
die alert-box kommt zwar, aber sie kommt auch wenn ich im NS
nun die style-sheets ausschalte. das ist also auch noch nicht
richtig.
hast du noch eine idee?
sven
Nur ist für den NN4.x ein <div> ohne die CSS Angabe position: relative/absolute kein Layer.
Füge folgendes in den <head> Bereich hinzu:
<style type="text/css">
<!--
.norm
{
position: absolute;
}
-->
</style>und ändere das <div>:
<div class="norm">test</div>
Dann bringt der NN auch die alert-Box und du weißt, dass CSS eingeschalten ist.
mfg
ALEX
Moin!
ich habe mal wieder das ganze forum durchsucht und auch schon
einen ansatz gefunden. naemlich diesen:
...
Hmm, was hast Du genau vor? Eine Meldung, daß der andere CSS aktivieren soll? CSS und Javascript sind bei Netscape gekoppelt. Ist Javascript deaktiviert, funktionieren die CSS nicht mehr, dies dürfte aber nicht jedem Benutzer klar sein, da es nicht offensichtlich ist.
Falls Du einen Hinweis bringen möchtest, wäre es einfacher, einfach eine Meldung wie "Die Seite sieht mit CSS aber besser aus" per CSS auf die selbe Farbe wie den Hintergrund zu bringen. Es gibt auch IMHO eine Möglichkeit, Objekte per CSS unsichtbar zu machen, ich hab's nur noch nie getestet.
Tschau!
Michael
hi michael,
ich habe einfach vor abzufragen, ob die style-sheets im browser
deaktiviert sind.
finde keine moeglichkeit....
sven
Hi Sven!
Wie Michael Vogel schon geschrieben hat: ist Javascript im Navigator
deaktiviert, so funktionieren die Stylesheets nicht mehr.
Ist Javascript schon aktiviert, geht die Abfrage ganz ähnlich wie
Dein Ansatz:
<div name="styleTest" style="position:absolute;visibility:hidden;left:0px;top:0;"></div>
<script language="javascript">
var stylesOn=false;
if(document.styleTest) {stylesOn=true;}
alert("stylesheet aktiviert:"+stylesOn)
</script>
Soviel ich weiss, lassen sich die Stylesheets im IE gar nicht deaktivieren, dort
kannst Du Dir eine Abfrage also sparen.
lg Hobbes
<img src="http://server.datenwerk.at/~til/img/hobbes.gif" alt="">
hey hobbes,
das war's was mir noch gefehlt hat. jetzt funkts enddlich!!
1.000 dank!
da man wie du schon sagtest im IE5 eh die css nicht abschalten
kann braucht man es nur im NS zu pruefen.
hier der code:
<html>
<head>
<title>css-abfrage</title>
<style type="text/css">
<!--
#Test { position: absolute; left:250px; top:250px; }
-->
</style>
</head>
<body>
<div id="Test">test</div>
<script language="javascript">
var stylesOn = false;
if(document.layers.Test) {stylesOn=true;}
alert("aktiviert : "+stylesOn)
</script>
</body>
</html>
sven
Moin
Soviel ich weiss, lassen sich die Stylesheets im IE gar nicht deaktivieren, dort
kannst Du Dir eine Abfrage also sparen.
Geht schon, und sogar sehr radikal: Extras --> Interneteinstellung --> Eingabehilfen. Eine gute Einstellung, wenn ein wildgewordener Webdesigner meine müden Augen mittels CSS unter 10 pt zwingen will :-))
Swen