dominik28: JavaScript: Dynamische Ausblendung funktioniert nicht

Hallo!

Ich versuche gerade eine dynamische Ausblendung einer Benachrichtigung zu machen. Die Benachrichtigung zeigt eine Warnung (den Inhalt mache ich später), wenn man den IE benutzt, dass nicht alle Funktionen der Seite funktionieren werden.

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">  
<html>  
<head>  
<title>Browser</title>  
<meta name="author" content="Dominik">  
<style>  
body {  
	margin:50px 10% 50px 10%;  
	padding:0.7em;  
	border:1pt solid silver;  
	color:lightslategray;  
	background-color:white; }  
  
p.bwarning {  
	position:fixed;  
	top:0; left:0; right:0;  
	background-color:green;  
	color:yellow;  
	padding:0.7em;  
	margin:0;  
	cursor:pointer; }  
  
p.bwarning a {  
	color:yellow; }  
</style>  
<script type="text/javascript">  
<!--  
function firefox_download_link () {  
	window.location.href = "http://mozilla.org/firefox/";  
}  
function bwarning_ausblenden () {  
	document.getElementsById("bwarning").disabled = true;  
}  
if (navigator.appName == "Microsoft Internet Explorer" || navigator.appName == "Windows Internet Explorer") {  
	document.write("<p class=bwarning onclick=firefox_download_link()><b>Warnung!</b> Sie benutzen den Internet Explorer. Dies ist sehr gef&auml;rlich. Klicken sie bitte <a href=http://mozilla.org/firefox/>hier</a>.</p>");  
}  
if (navigator.appName == "Netscape") {  
	document.write("<p class=bwarning><b>Gut!</b> Sie benutzen einen sicheren und leistungsstarken Browser.</p>");  
}  
// -->  
</script>  
</head>  
<body>  
<h1>Welchen Browser sie wohl nutzen?</h1>  
<a href="javascript:bwarning_ausblenden()">Browser-Warnung ausblenden</a>  
</body>  
</html>  

Der Ausblenden-Link funktioniert leider nicht.
Kann mir jemand helfen?

Dominik

  1. Hi,

    Der Ausblenden-Link funktioniert leider nicht.

    Natürlich, denn du versuchst ja mittels getElementById auf ein Element mit einer ID zuzugreifen, die im Dokument gar nicht vorhanden ist.
    Bitte gewöhne dir an, beim Entwicklen von JS ständig in die Fehlerkonsole (eines guten Testbrowsers wie bspw. Firefox) zu schauen!

    Und was du dir darüber hinaus davon versprichst, die JavaScript-Repräsentation eines P-Elements mit einer Eigenschaft namens "disabled" und dem Wert true auszustatten, ist mir auch unklar.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hi,

    function bwarning_ausblenden () {
    document.getElementsById("bwarning").disabled = true;

    Da es nur eine Id mit einem konkreten Wert geben kann, gibt es keine Funktion getElementsById.

    function  bwarning_ausblenden ()  {
        document.getElementsById("bwarning").disabled = true;

    etwas auf disabled zu setzen, hat nichts mit ausblenden zu tun.

    document.write("<p class=bwarning onclick=firefox_download_link()><b>Warnung!</b> Sie benutzen den Internet Explorer. Dies ist sehr gef&auml;rlich. Klicken sie bitte <a href=http://mozilla.org/firefox/>hier</a>.</p>");

    Du erzeugst kein Element mit der Id, über die Du auf das Element zugreifen willst.

    if (navigator.appName == "Netscape") {
    document.write("<p class=bwarning><b>Gut!</b> Sie benutzen einen sicheren und leistungsstarken Browser.</p>");

    Netscape 4 ist leistungsstark?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
  3. @@dominik28:

    nuqneH

    <script type="text/javascript">
    <!--

    Die HTML-Auskommentierung von JavaScript-Code ist bestenfalls unsinnig, womöglich auch falsch.

    if (navigator.appName == "Microsoft Internet Explorer" || navigator.appName == "Windows Internet Explorer") {
    document.write("<p class=bwarning onclick=firefox_download_link()><b>Warnung!</b> Sie benutzen den Internet Explorer. Dies ist sehr gef&auml;rlich. Klicken sie bitte <a href=http://mozilla.org/firefox/>hier</a>.</p>");
    }
    if (navigator.appName == "Netscape") {
    document.write("<p class=bwarning><b>Gut!</b> Sie benutzen einen sicheren und leistungsstarken Browser.</p>");
    }

    Wo hast du diesen Unsinn her?

    Netscape?? In welchem Museum wird der ausgestellt?

    Das es inzwischen andere „sichere und leistungsstarken Browser“ gibt, weißt du? Dass IE 8 etwas aufgeholt hat, weißt du?

    Du willst IE-8-Nutzern sagen, dass sie einen „gefährlichen“ Browser benutzen? Mach dich bitte nicht lächerlich.

    Und welcher Nutzer wird sich einen anderen Browser installieren, nur weil deine Seite meint, dass er es tun sollte?

    Und wenn du eine Browserweiche bauen willst, dann mittels <http://de.selfhtml.org/css/layouts/browserweichen.htm#alternative@title=conditional comments> (ggfs. mit else-Zweig).

    JavaScript ist hier völlig fehl am Platze. (Und BTW, in JavaScript gibt es conditional compilation.)

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  4. Grüße,

    1. Internet ist voll von Tutorien, achte aber dass die nach Möglichkeit nicht älter als 5 Jahre sind - besser sind unaktuelle (~letztes jahr damit man auf Implementierung hoffen kann^^) w3c Deklarationen falls dein englisch für reicht.

    2)ich weiss nciht wie es bei furrfox geht (übrigens - der ist statistisch gesehen wesentlich gefährlicher als ie8, aber das nur so am Rande)

    aber wenn du einen anständigen Browser wie Opera benutzen würdest, könntest du die Ausführung von JS schritt für schritt verfolgen um zu sehen wo es abbricht bzw. was genau es anstellt.

    MFG
    bleicher

    --
    __________________________-

    FirefoxMyth
  5. Hallo,

    ich sehe auf die Schnelle folgende Fehler:

    bei

      
    function  bwarning_ausblenden ()  {  
            document.getElementsById("bwarning").disabled = true;  
    }  
      
    
    

    ist das "s" hinter "Element" zu viel - mach da also mal "getElementById" draus.

    Weiterhin müsstest du aus

      
    if  (navigator.appName == "Microsoft Internet Explorer" || navigator.appName == "Windows Internet Explorer")  {  
            document.write("<p class=bwarning onclick=firefox_download_link()><b>Warnung!</b> Sie benutzen den Internet Explorer. Dies ist sehr gef&auml;rlich. Klicken sie bitte <a href=http://mozilla.org/firefox/>hier</a>.</p>");  
    }  
    if (navigator.appName == "Netscape") {  
            document.write("<p class=bwarning><b>Gut!</b> Sie benutzen einen sicheren und leistungsstarken Browser.</p>");  
    }  
    
    

    eine Version mit definierter Id deines p-Tags machen, also so:

      
      
    if  (navigator.appName == "Microsoft Internet Explorer" || navigator.appName == "Windows Internet Explorer")  {  
            document.write("<p class=bwarning  id='bwarning' onclick=firefox_download_link()><b>Warnung!</b> Sie benutzen den Internet Explorer. Dies ist sehr gef&auml;rlich. Klicken sie bitte <a href=http://mozilla.org/firefox/>hier</a>.</p>");  
    }  
    if (navigator.appName == "Netscape") {  
            document.write("<p class=bwarning id='bwarning'><b>Gut!</b> Sie benutzen einen sicheren und leistungsstarken Browser.</p>");  
    }  
    
    

    Du hattest zwar mit "class" eine Klasse definiert, dabei jedoch keine ID festgelegt, auf die Javascript aber zugreifen möchte.

    Gruß Hans