BrokenBrain: Layer auch bei Netscape etc. un/sichtbar machen

Hallo

ich möchte einen Layer per JavaScript sichtbar/unsichtbar machen können. Den Code den ich jetzt verwende klappt ja wunderbar mit IE, Modzilla, Netscape usw. scheinen den code jedoch nicht zu verstehen.
Wie sieht der code für Netscape usw. aus bzw. was müsste ich da ändern?
der code klappt bei IE:

document.all.main.style.visibility = "visible"; (main ist die id des layers)

und noch eine frage: ich möchte mit JS auslesen welchen Browser der User nutzt, damit er dann den entsprechenden code ausführt. Ich habe da schon was gefunden, bin mir aber nicht sicher ob es funktioniert:

<SCRIPT Language="JavaScript">
if (navigator.appName.indexOf("Netscape") != -1){
// window.location = "netscape.htm";}
if (navigator.appName.indexOf("Explorer") != -1){
// window.location = "internet_explorer.htm";}
else{
//document.write('Bei allen anderen Browsern wird dieser Text ausgegeben. Hier käme am besten ein Link zu einer Alternativ-Version der Seite rein.')
}
</script>

  1. Hallo BrokenBrain,

    Den Code den ich jetzt verwende klappt ja wunderbar mit IE, Modzilla, Netscape usw. scheinen den code jedoch nicht zu verstehen.

    Kunststück - document.all ist proprietär, das versteht nur der IE.

    document.all.main.style.visibility = "visible"; (main ist die id des layers)

    Für Browser brauchst du document.getElementById('main').style.visibility = ...

    Ich habe da schon was gefunden, bin mir aber nicht sicher ob es funktioniert:

    jedes Script, das du diesbezüglich findest wird nicht funktionieren.

    <SCRIPT Language="JavaScript">

    hier fehlt das type-Attribut.

    if (navigator.appName.indexOf("Netscape") != -1){
    // window.location = "netscape.htm";}

    es fehlt ein ".href" -> window.location.href = ...

    if (navigator.appName.indexOf("Explorer") != -1){
    // window.location = "internet_explorer.htm";}

    für was brauchst du den Unsinn überhaupt?

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
    1. Hi

      Für Browser brauchst du document.getElementById('main').style.visibility = ...

      jo, es klappt, danke!!

      if (navigator.appName.indexOf("Netscape") != -1){
      // window.location = "netscape.htm";}
      es fehlt ein ".href" -> window.location.href = ...

      das ist doch nur ein comment und stammt ausserdem nicht von mir

      für was brauchst du den Unsinn überhaupt?

      Wieso Unsinn?
      Beziehst du die Frage jetzt auf die Sache mit den Layern oder auf die Browsererkennung?
      wenn du das mit Layer meinst: ich benutze da ein Effekt mit dem (bis jetzt zumindest bei IE) den Inhalt des Layers langsam erscheinen lässt. Für den Effekt müssen jedoch die Layer auf unsichtbar gemacht werden. Da dieser Effekt jedoch bei Mozilla etc. nicht funktioniert wollte ich eine Browsererkennung einbauen. Bei IE würde er den Effekt machen, bei Mozilla etc. den Layer auf sichtbar schalten. Deswegen hast du nämlich auf meiner Seite nichts gesehen.

      Übrigens: gibt es da vielleicht eine Möglichkeit auch bei Mozilla diesen Effekt anzeigen zu lassen?
      Das ist der momentane Code davon:

      document.getElementById('main').filters.blendTrans.Apply();
      document.getElementById('main').style.visibility = "visible";
      document.getElementById('main').filters.blendTrans.Play();

      1. Hallo BrokenBrain,

        es fehlt ein ".href" -> window.location.href = ...
        das ist doch nur ein comment und stammt ausserdem nicht von mir

        alles Ausreden :-)

        Wieso Unsinn?
        Beziehst du die Frage jetzt auf die Sache mit den Layern oder auf die Browsererkennung?

        die Browserkennung.

        wenn du das mit Layer meinst: ich benutze da ein Effekt mit dem (bis jetzt zumindest bei IE) den Inhalt des Layers langsam erscheinen lässt.

        oje - bin ich froh, das sowas in meinem Opera garnichterst funktioniert - sowas nervt imho, wenn der Text ewig langsam erscheint.

        Da dieser Effekt jedoch bei Mozilla etc. nicht funktioniert wollte ich eine Browsererkennung einbauen. Bei IE würde er den Effekt machen, bei Mozilla etc. den Layer auf sichtbar schalten.

        so wie du es jetzt hast, erscheint im IE das "Layer" langsam, und im Mozilla normal (also schnell), oder? Dann passt es doch (auch wenn ich das filter-Zeug weglassen würde). Für was brauchtst du dann noch eine Browserweiche? btw: Browserweichen sollten nie über navigator.* gemacht werden, sondern immer über das was Browser können bzw. eben nicht - in dem Fall könntest du allso testen, ob der Browser filter.* kennt - wenn ja, ist es ein IE wenn nicht, einer der vielen anderen Browser)

        Deswegen hast du nämlich auf meiner Seite nichts gesehen.

        auf welcher Seite?

        Übrigens: gibt es da vielleicht eine Möglichkeit auch bei Mozilla diesen Effekt anzeigen zu lassen?

        nein, den filter-Krempel kennt nur der IE.

        Grüße aus Nürnberg
        Tobias

        --
        Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
        1. es fehlt ein ".href" -> window.location.href = ...
          das ist doch nur ein comment und stammt ausserdem nicht von mir
          alles Ausreden :-)

          ich kann mal nach der seite suchen wo ich das her hab, wenn du mir nicht glaubst!

          wenn du das mit Layer meinst: ich benutze da ein Effekt mit dem (bis jetzt zumindest bei IE) den Inhalt des Layers langsam erscheinen lässt.
          oje - bin ich froh, das sowas in meinem Opera garnichterst funktioniert - sowas nervt imho, wenn der Text ewig langsam erscheint.

          ich hab den effekt so eingestellt, dass er ziemlich kurz ist und durchaus angenehm, alle denen ich den effekt gezeigt habe waren jedendfalls begeistert, aber kannst dir selber ein bild machen:
          www.q-o-a.de (aber momentan scheint irgendwas mit dem server zu sein, vielleicht klappt die seite später wieder)

          Da dieser Effekt jedoch bei Mozilla etc. nicht funktioniert wollte ich eine Browsererkennung einbauen. Bei IE würde er den Effekt machen, bei Mozilla etc. den Layer auf sichtbar schalten.
          so wie du es jetzt hast, erscheint im IE das "Layer" langsam, und im Mozilla normal (also schnell), oder? Dann passt es doch (auch wenn ich das filter-Zeug weglassen würde).

          Nee, so wie ich das hatte, hat IE den Effekt gemacht und Mozilla hat den Layer gar nicht angezeigt, weil der Layer auf unsichtbar gestellt war und mozilla den code vom effekt nicht lesen konnte.

          btw: Browserweichen sollten nie über navigator.* gemacht werden, sondern immer über das was Browser können bzw. eben nicht - in dem Fall könntest du allso testen, ob der Browser filter.* kennt - wenn ja, ist es ein IE wenn nicht, einer der vielen anderen Browser)

          ja, stimmt, ist besser. Nur weiß ich nicht wie (mit welchem code) man prüfen kann ob der Browser was kennt oder nicht. Wenn du es mir sagen kannst....

          Deswegen hast du nämlich auf meiner Seite nichts gesehen.
          auf welcher Seite?

          www.q-o-a.de, ist aber wie gesagt momentan nicht funktionsfähig

          1. Hallo BrokenBrain,

            ich kann mal nach der seite suchen wo ich das her hab, wenn du mir nicht glaubst!

            dann ist es eben auf dieser Seite falsch.

            ja, stimmt, ist besser. Nur weiß ich nicht wie (mit welchem code) man prüfen kann ob der Browser was kennt oder nicht. Wenn du es mir sagen kannst....

            versuchs mal mit
            function bla(){
              if(document.getElementById('main').filters) alert('IE');
              else alert('kein IE');
            }
            (für main eben die id einsetzten) - es gibt aber bestimmt noch eine schönere Methode, aber es funktioniert.

            Grüße aus Nürnberg
            Tobias

            --
            Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|
            1. versuchs mal mit
              function bla(){
                if(document.getElementById('main').filters) alert('IE');
                else alert('kein IE');
              }
              (für main eben die id einsetzten) - es gibt aber bestimmt noch eine schönere Methode, aber es funktioniert.

              jo, danke!! muss ich gleich mal ausprobieren