stachel6462: Einfluss Script (Browsereinstellung) auf Rollover-Funktion

Hallo Leute!
Ich habe folgendes Problem:
Im Zuge von Aktualisierung/Erweiterung einer bestehenden Website, habe ich auch (Dreamweaver CS3) einen Rollover-Button erstellt.
Nur funktioniert das Rollover nicht, Mauszeiger wird allerdings aktiv. Sowohl im Mac (Safari) wie im Windows (Explorer).
Eine neue Testseite innerhalb dieser Site und genau kopierten + eingefügtem Code des Rolloverbilds offenbarte, daß es von daher einwandfrei funzt.
Nach genauem Suchen habe ich festgestellt, daß in jeder Seite, wo unten angefügtes Script zwecks Browser-Einstellungen vorangestellt ist, das Rollover NICHT funzt, es wird iwie deaktiviert. Siehe unten
Was kann / muß ich an dem Script ändern, damit die RO-Funktion erhalten bleiben kann, andererseits aber die Browser-Kompatibiltät sichergestellt bleibt - bzw. was ist davon auch redundant vielleicht?

Vielen Dank schonmal im Voraus für Eure Hilfe!
A propos - bin noch relativer Anfänger :)

Hier also der betreffende Auszug aus dem Script

var browser=navigator.appName;
document.write("<LINK REL="stylesheet" TYPE="text/css"");
/**** Mac ****/
if(navigator.userAgent.indexOf("Mac")!=-1)
{
if(browser.indexOf("Netscape")!=-1) /** Mac Netscape **/
document.write("HREF="styles/mc_formate.css">");
else /** Mac IE **/
document.write("HREF="styles/mc_formate.css">");
}
else /**** PC ****/
{
if(navigator.userAgent.indexOf("Win")!=-1) /** PC Windows **/
{
if(browser.indexOf("Netscape")!=-1&&navigator.appVersion.substring(0,1)<5) /** PC Netscape **/
{
document.write("HREF="styles/pc_formate.css">");
}
else /** PC IE (/sonstige) **/
{
document.write("HREF="styles/pc_formate.css">");
}
}
else /**** sonstige Betriebssysteme ****/
{
if(navigator.userAgent.indexOf("Linux")!=-1) /** Linux **/
document.write("HREF="styles/mc_formate.css">");
else
document.write("HREF="styles/mc_formate.css">");
}
  }
 /

  1. Hi there,

    [...]document.write("HREF="styles/pc_formate.css">");
    }
    else /** PC IE (/sonstige) **/
    {
    [...]

    Wo hast Du denn dieses Script her? In einem Bombenkrater gefunden?

    Anyway, die Ursache für das Nichtfunktionieren Deines Rollovers geht daraus leider in keinem Fall hervor, ausser dass mit dem Laden der entsprechenden Stylesheetdatei möglicherweise irgendetwas überschrieben wird. Das eigentliche Problem liegt sicher in irgendeiner Funktion, die mit MM_irgendwas beginnt, wenn Du mit Dreamweaver arbeitest...

    1. Hi there,

      [...]document.write("HREF="styles/pc_formate.css">");
      }
      else /** PC IE (/sonstige) **/
      {
      [...]

      Wo hast Du denn dieses Script her? In einem Bombenkrater gefunden?

      Anyway, die Ursache für das Nichtfunktionieren Deines Rollovers geht daraus leider in keinem Fall hervor, ausser dass mit dem Laden der entsprechenden Stylesheetdatei möglicherweise irgendetwas überschrieben wird. Das eigentliche Problem liegt sicher in irgendeiner Funktion, die mit MM_irgendwas beginnt, wenn Du mit Dreamweaver arbeitest...

      Hi zurück!

      Dieses Script war in der schon vorhandenen Website drin, ohne daß ich daran was geändert hätte.
      Da ich ziemlicher Anfänger bin, weiß ich nicht, was ich nun mit oder statt diesem Script hier machen kann / soll.

      Ich hatte erstmal nur eine unformatierte neue Test-Seite in die Site hinzugefügt, den Rollover-Button dazu - und es funzte. Die ganzen MM_ scripte waren auch identisch mit dem zuerst probierten Rolloverbild auf der ursprünglichen Seite.
      Dann habe ich den hier zitierten Script aus der "Problem"seite kopiert, in die Testseite eingefügt - da wurde dann genauso der Rollover-Effekt blockiert (der Link wurde aber aktiv). Nach Wiederrausschneiden klappte der RO-Effekt wieder. Also muß das Problem doch in diesem zitierten Script verborgen liegen, oder sehe ich das falsch?

      1. Hallo zusammen... !!!

        Hab jetzt nur aus der betreffenden Seite dieses offenbar Müll-script mit den Browsereinstellungen rausgeschmissen und werds heut abend auch in'nem PC (IE) testen können...
        Im Mac funzt jetzt das Rollover einwandfrei und die Darstellung der Seite ist auch unverändert i.o.

        Danke jedenfalls für Eure Erklärungen und Anregungen !!!

        Euer stachel :)

  2. [latex]Mae  govannen![/latex]

    Dieses Script ist Müll. Entsorge es komplett.
     - versucht anhand von navigator.appName bzw. navigator.userAgent zu verzweigen:

    if(navigator.userAgent.indexOf("Win")!=-1) /** PC Windows **/

    Was, wenn ein (fiktiver) Mac/Linux/sonstwas-Browser diesen Teilstring im Namen enthält?

    - wendet sich an uralte Browser wie Netscape
     - verwendet if...else -Verzweigungen, die dann doch exakt den gleichen Code ausgeben:

    
    > if(browser.indexOf("Netscape")!=-1) /** Mac Netscape **/  
    > document.write("HREF=\"styles/mc_formate.css\">");  
    > else /** Mac IE **/  
    > document.write("HREF=\"styles/mc_formate.css\">");  
    > }
    
    

    und auch weitere

    - Nutzer ohne Javascript bekommen kein Stylesheet

    Binde stattdessen ein Stylesheet fest isn HTML ein, verwende standardkonformes CSS sowie einen Doctype, der die Browser nicht in den Quirksmode schickt. Damit hast du dann schon mal so gut wie alle modernen Browser abgedeckt. Dann müssen nur noch kleine Anpassungen für bestimmte Fälle/Browser gemacht werden (insbesondere IE in den Versionen 6 und 7)

    Cü,

    Kai

    --
    Hard to believe that anyone would use Prototype.js at this
    point. It was a bad idea in 2006 and it hasn't gotten any better with age. (David Mark)
    Foren-Stylesheet Site Selfzeugs
    SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?
    1. Hallo Kai,

      Dieses Script ist Müll. Entsorge es komplett.

      Kann ich das quasi "ersatzlos" tun? Gerade zumal ich die Website nicht komplett umkrempeln soll/will vom Code her!
      Oder kann ich mich alternativ auf den Head verlassen, der bei neuer HTML-Seite von DW CS3 ausgegeben wird, würde der reichen? Denn damit funktioniert das Rollover-Bild.
      Oder hängt das wiederum von den verwendeten Stylesheets (so denn wirklich darin eingebettet) und dem CSS ab, ob da die Browser-Einstellungen aufwendiger und "gezielter" codiert werden müssen.

      Was, wenn ein (fiktiver) Mac/Linux/sonstwas-Browser diesen Teilstring im Namen enthält?

      Sorry - hab ich jetzt nicht verstanden... bin doch Anfenger =)

      • Nutzer ohne Javascript bekommen kein Stylesheet

      Was meinst Du damit? Daß also eingebettete Stylesheets ohne Javascript nicht dargestellt werden <öh...>

      Binde stattdessen ein Stylesheet fest isn HTML ein, verwende standardkonformes CSS sowie einen Doctype, der die Browser nicht in den Quirksmode schickt. Damit hast du dann schon mal so gut wie alle modernen Browser abgedeckt. Dann müssen nur noch kleine Anpassungen für bestimmte Fälle/Browser gemacht werden (insbesondere IE in den Versionen 6 und 7)

      Siehe bitte meine obige Frage... Kann nicht das komplette CSS, etc. umschmeißen, sondern will nur'n Rollover-Effekt haben und dazu möglichst unaufwendig die Browserkompatibilität sicherstellen...

      Cü,

      Kai

      CU too
      Stachel

      1. Hi,

        • Nutzer ohne Javascript bekommen kein Stylesheet

        Was meinst Du damit? Daß also eingebettete Stylesheets ohne Javascript nicht dargestellt werden <öh...>

        Sie werden dann nicht dargestellt, wenn das JavaScript, welches du zu ihrer Einbettung verwendet hast, nicht ausgeführt wird, weil JavaScript deaktiviert ist.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
  3. Mahlzeit stachel6462,

    Im Zuge von Aktualisierung/Erweiterung einer bestehenden Website, habe ich auch (Dreamweaver CS3) einen Rollover-Button erstellt.

    Was genau ist ein "Rollover-Button"? Irgendwas CS3-spezifisches? Um ein normales, standardkonformes HTML-Element handelt es sich dabei nämlich wohl nicht ...

    Nach genauem Suchen habe ich festgestellt, daß in jeder Seite, wo unten angefügtes Script zwecks Browser-Einstellungen vorangestellt ist, das Rollover NICHT funzt, es wird iwie deaktiviert.

    "Funzt nicht" funzt nicht.

    var browser=navigator.appName;
    document.write("<LINK REL="stylesheet" TYPE="text/css"");

    *Wo genau* hast Du dieses Skript in die Seite(n) eingefügt? Ganz unten? Am Ende des Dokuments? In dem Fall *ersetzt* der Aufruf von http://de.selfhtml.org/javascript/objekte/document.htm#write@title=document.write() das aktuelle Dokument. <http://de.selfhtml.org/html/referenz/elemente.htm#link@title=Abgesehen davon sind <link>-Elemente sowieso nur im <head> erlaubt!>

    /**** Mac ****/
    if(navigator.userAgent.indexOf("Mac")!=-1)

    Du weißt, dass die Angaben im HTTP_USER_AGENT beliebig manipulier- und fälschbar sind? Sich darauf zu verlassen ist in höchstem Maße fahrlässig.

    Vielen Dank schonmal im Voraus für Eure Hilfe!
    A propos - bin noch relativer Anfänger :)

    Hätte ich jetzt kaum vermutet ...

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi Ekki,

      ein Rolloverbutton/-bild läßt sich im DW CS3 über einen Menüpunkt erstellen, sodaß beim mouse-over ein anderes (Erscheinungs-)Bild des Links erscheint, bei mouse-out wieder das urprüngliche.

      Das Script war schon in der vorhandenen Website drin, die ich überarbeite. Es steht im Head.

      1. Mahlzeit stachel6462,

        ein Rolloverbutton/-bild läßt sich im DW CS3 über einen Menüpunkt erstellen, sodaß beim mouse-over ein anderes (Erscheinungs-)Bild des Links erscheint, bei mouse-out wieder das urprüngliche.

        Also kein Standard-HTML (wie vermutet), sondern CS3-eigener JS-Spielkram. Da ich mich mit diesen Bunti-klicker-klacker-pixelschieberprogrammen nicht auskenne, kann ich leider nicht weiterhelfen.

        Eventuell könnte es helfen, wenn Du vollständig relevanten Code zeigst (oder alternativ einen Link auf eine Online-Version bereitstellst).

        Das Script war schon in der vorhandenen Website drin, die ich überarbeite. Es steht im Head.

        Das ist schon mal nicht schlecht. Trotzdem wäre da die Frage: was hat sich denn überhaupt im Gegensatz zu vorher geändert? Kannst Du das herausfinden?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. n'abend, Ekki

          Das Script war schon in der vorhandenen Website drin, die ich überarbeite. Es steht im Head.

          Das ist schon mal nicht schlecht. Trotzdem wäre da die Frage: was hat sich denn überhaupt im Gegensatz zu vorher geändert? Kannst Du das herausfinden?

          Ja, der Unterschied zwischen RO-Bild auf der Website und meiner dort eingebauten Testseite war eben dieser oben zitierte Code-Ausschnitt, bezüglich diverser Browser.
          MIT diesem drin: Kein Rollover-Effekt - OHNE diesen drin: Rollover-Effekt ok.

          MfG,
          EKKi

          dito,
          Stachel

      2. Hi,

        Das Script war schon in der vorhandenen Website drin, die ich überarbeite.

        Dann beginnge die Überarbeitung damit, dass du es rauswirfst.

        MfG ChrisB

        --
        Light travels faster than sound - that's why most people appear bright until you hear them speak.
  4. Hallo,

    Im Zuge von Aktualisierung/Erweiterung einer bestehenden Website, habe ich auch (Dreamweaver CS3) einen Rollover-Button erstellt.

    dass Dreamweaver CS3, der eigentlich recht aktuell ist, ...

    Hier also der betreffende Auszug aus dem Script

    var browser=navigator.appName;
    document.write("<LINK REL="stylesheet" TYPE="text/css"");
    /**** Mac ****/
    if(navigator.userAgent.indexOf("Mac")!=-1)
    {
    if(browser.indexOf("Netscape")!=-1) /** Mac Netscape **/
    document.write("HREF="styles/mc_formate.css">");
    else /** Mac IE **/
    document.write("HREF="styles/mc_formate.css">");
    }

    ... solchen Müll produziert, hätte ich nicht gedacht:

    Also:
        Wenn im userAgent-String die Zeichenfolge "Mac" vorkommt,
        muss es ein Mac sein. Auf dem muss es genau einer von zwei
        verschiedenen Browsern sein:

    a) Netscape für Mac,
        b) falls nicht, dann muss es ja der IE sein.

    IE für Mac ist 2003 eingestellt worden, ebenfalls in 2003 wurden die restlichen Programmierer, die an Netscape arbeiteten, von AOL entlassen. Wurde etwa seit der Übernahme von Macromedia durch Adobe an den MM_Skripten nichts mehr geändert?

    Alles in allem: Der Effekt, den Du erreichen möchtest, kannst Du vermutlich viel leichter mit CSS erreichen als durch Anpassen dieser Makromedia-Skripte.

    Freundliche Grüße

    Vinzenz

    1. Hallo,

      Im Zuge von Aktualisierung/Erweiterung einer bestehenden Website, habe ich auch (Dreamweaver CS3) einen Rollover-Button erstellt.

      dass Dreamweaver CS3, der eigentlich recht aktuell ist, ...

      Hier also der betreffende Auszug aus dem Script

      var browser=navigator.appName;
      document.write("<LINK REL="stylesheet" TYPE="text/css"");
      /**** Mac ****/
      if(navigator.userAgent.indexOf("Mac")!=-1)
      {
      if(browser.indexOf("Netscape")!=-1) /** Mac Netscape **/
      document.write("HREF="styles/mc_formate.css">");
      else /** Mac IE **/
      document.write("HREF="styles/mc_formate.css">");
      }

      ... solchen Müll produziert, hätte ich nicht gedacht:

      Also:
          Wenn im userAgent-String die Zeichenfolge "Mac" vorkommt,
          muss es ein Mac sein. Auf dem muss es genau einer von zwei
          verschiedenen Browsern sein:

      a) Netscape für Mac,
          b) falls nicht, dann muss es ja der IE sein.

      IE für Mac ist 2003 eingestellt worden, ebenfalls in 2003 wurden die restlichen Programmierer, die an Netscape arbeiteten, von AOL entlassen. Wurde etwa seit der Übernahme von Macromedia durch Adobe an den MM_Skripten nichts mehr geändert?

      Alles in allem: Der Effekt, den Du erreichen möchtest, kannst Du vermutlich viel leichter mit CSS erreichen als durch Anpassen dieser Makromedia-Skripte.

      Freundliche Grüße

      Vinzenz

      Hi Vinzenz,

      danke für Dein Posting -
      Dieses (ahnte ich aber auch schon - ) grottenmäßig alte Script war in dieser Website, die ich überarbeite, so drin, nicht durch DW reingekommen.
      Hab daran nichts geändert, da noch nicht genug Erfahrung damit.
      Wenn ich Dich also recht verstehe, und auch die anderen Poster hier, ist die Hälfte bis alles davon redundant, oder?
      Wie mache ich denn über CSS einen Rollover-Effekt?
      (Hab mich da aufs DW verlassen, daß dieser Menupunkt Einfügen eines Rolloverbilds/Buttons in jedem Falle zum gewünschten Ergebnis führt.)