mtrailer: Framesets und Browserniffer - wie????

Ich habe ein Problem - klar sonst wär ich ja auch nicht hier...

Ich habe eine Version einer Site speziell für MSIE ab Ver. 5 erstellt und eine für alle anderen Browser.
Beide Versionen basieren auf Frames....

Nun können ja einzelne Seiten durch Suchmaschinen einzeln indexiert werden und somit auch eintzeln aufgerufen werden.
Das hab ich mit nem nornmalen Find Parent Frameset Script gelöst - es werden also keine Einzelseiten außerhalb des jeweiligen Hauptframes angezeigt.
Was aber nun wenn ein Netscape User auf die Microsoft Seiten kommt?
Ich hab alles mit Browsersniffern versucht in die Index Datei NoFrames Bereich . in jede Inhaltsseite aber irgendwie klappt das nicht...
zwar werden die entsprechenden brwoserseiten dann geladen aber nur in den einen frame...
ich habs mit target top versucht aber dann ging gar nichts mehr...

hat irgendwer irgendwo einen browserniffer in frames im einsatz und kann mir den mal geben? oder kann ir wer sagen wie so ein script dann bei onload aussieht?

kurzfassung:
wenn eine für ms erstellte frameseiteseite im frameset von einem ns user aufgerufen wird soll das komplette ms frameset durch das entsprechende ns framest ersetzt werden und umgekehrt...

derzeit hab ich das folgende script im test:

<SCRIPT language="JavaScript">
<!--
/*
Browser Sniffer Script-
© Eddie Traversa (nirvana.media3.net)
To add more shock to your site, visit www.DHTML Shock.com
*/

function browserSniffer(netscape4URL,explorer4URL,webtvURL,aolURL,operaURL,version3URL,w3cURL) {
  var agt=navigator.userAgent.toLowerCase();
   var agt=navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);
    var is_minor = parseFloat(navigator.appVersion);
    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1));
    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && (is_major >= 4));
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );
    var is_nav5 = (is_nav && (is_major == 5));
    var is_nav5up = (is_nav && (is_major >= 5));
    var is_ie   = (agt.indexOf("msie") != -1);
    var is_ie3  = (is_ie && (is_major < 4));
    var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) );
    var is_ie4up  = (is_ie  && (is_major >= 4));
    var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4);
    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_opera = (agt.indexOf("opera") != -1);
    var is_webtv = (agt.indexOf("webtv") != -1);

if (is_nav4up) {
   location.href = netscape4URL; // netscape 4+ but not NS5
    }else if (is_ie4up) { //IE4 & IE5 but returns IE4
   location.href = explorer4URL;
     }else if (is_webtv) { // Web TV
    location.href = webtvURL;
 }else if (is_aol || is_aol3 || is_aol4) { //AOL
    location.href = aolURL;
  }else if (is_opera) { // Opera
    location.href = operaURL;
     }else if (is_ie3||is_nav3) { // 3.0 version browsers
    location.href = version3URL;
    }else if (is_nav5up) { // Netscape 5
   location.href = w3cURL;
    }
}
//-->
</SCRIPT>

und im body tag:

<BODY onLoad="browserSniffer('nn4.html','IE4.html','webtv.html','aol.html','opera.html','NNandIE3.html','nn6.html')">

für jede hilfe dankbar

gruß
mtrailer

  1. Gruß.

    Ich habe ein Problem - klar sonst wär ich ja auch nicht hier...

    Absolut unlogisch. Ich bin ja auch hier. ;)

    Ich habe eine Version einer Site speziell für MSIE ab Ver. 5 erstellt und eine für alle anderen Browser.

    Wozu dieser horrende Aufwand? Und *alle* sind da noch lange nicht dabei.

    Beide Versionen basieren auf Frames....

    Tja, Konzeptfehler, kann man nichts machen. Hast du schon über serverseitig generierte Seiten nachgedacht, mit denen du die Schwächen von Framesets umgehen könntest?

    Nun können ja einzelne Seiten durch Suchmaschinen einzeln indexiert werden und somit auch eintzeln aufgerufen werden. Das hab ich mit nem nornmalen Find Parent Frameset Script gelöst

    Funktioniert es so gut wie das hier?

    http://aktuell.de.selfhtml.org/artikel/javascript/dyn-frames/

    Was aber nun wenn ein Netscape User auf die Microsoft Seiten kommt?

    Wo liegt das Problem? Mag jetzt etwas polemisch klingen, aber warum schreibst du nicht einfach Seiten, die in allen Browsern funktionieren? Ich glaube dir einfach nicht, dass du alle Browser und die Specs so gut kennst, dass du für jeden Browser eine optimierte Version zu erstellen in der Lage bist.

    Ich hab alles mit Browsersniffern versucht in die Index Datei NoFrames Bereich . in jede Inhaltsseite aber irgendwie klappt das nicht...

    Wenn du an deinem Konzept festhalten willst, baue die Weiche in obiges Script ein, das dürfte *relativ* wenig Aufwand bedeuten.

    hat irgendwer irgendwo einen browserniffer in frames im einsatz und kann mir den mal geben? oder kann ir wer sagen wie so ein script dann bei onload aussieht?

    Ja, aber ohne Javascript. HTML und CSS reichen völlig aus.

    derzeit hab ich das folgende script im test:

    <SCRIPT language="JavaScript">
    <!--

    reichlich hoffenungsloses Gerate...

    //-->
    </SCRIPT>

    Was passiert ohne Javascript?

    Mich interessiert jetzt wirklich, worin sich die Seiten für unterschiedliche Browser unterscheiden. Ich kann mir keinen Fall vorstellen, der so eine brachiale Methode nötig machen würde. Poste mal von den Problemen, die dich dazu verführt haben. Ich bin mir sicher, wir finden eine einfachere Lösung.

    LG Roland

    1. Ok Problem ist folgendes....

      die Inhalte der Seite - also Texte , Formulare etc.... sollen nicht statisch an einer Stelle stehen sondern bei bestimmten Aktionen bestimmte Reaktionen zeigen z.B. aus dem linken / rechten seitenrand ins Bild laufen o.ä. - da es sich hierbei um sehr viele sich verändernde Inhalte handelt wurden framesets beschlossen, weil auch microsoft irgendwann die ganzen divs nicht mehr richtig umsetzte - waren wohl einfach zu viele in einer seite....

      Ursprünglich sollten ALLE Site Inhalte auf Ebenen verteilt in einer Seite ablaufen und das waren dann so ca. 60 - 80 verschiedene Divs mit unterschiedlichsten Texten und die meisten sollten sich Event oder Zeitgesteuert bewegen....

      Nachdem nun Frames eingesetzt wurden und die entsprechenden Inhalte auf entsprechende Unterseiten verteilt wurden lief das ganze perfekt im MSIE - nur eben absolut nicht in Netscape 4, Opera hatte auch ein paar kleinere Schwierigkeiten und bei Netscape 6 lief das ganze in Zeitlupe ab....

      Also wurde eine Version erstellt, die normalerweise in allen Browsern laufen müsste weil darin absolut keine Bewegung vorkommt und alle Inhalte auf je eine Einzelseite gesetzt wurden.

      Um es vorwegzuschicken - ja die Site ist Microsoft ausgerichtet und ob die anderen Nutzer die Inhalte sehen können ist prinzipiell vollkommen wurscht, passt mir aber nicht so ganz....obwohl ich auch auf Netscape 4.7 User verzichten könnte wenns absolut nicht funktioniert....

      PHP oder ASP kommen leider nicht in Betracht - hat Projektinterne Gründe..... Flash auch nicht...

      Ach ja ... die Frage was passiert ohne JavaScript.... da hat der User dann wohl Pech gehabt.....

      Öh - Roland was hast DU gegen Framesets? Ich sag nur Grindbergpraktiker.......

      Gruß
      mtrailer

  2. Aloha,

    hat irgendwer irgendwo einen browserniffer

    Meintest du jetzt

    <img src="http://www.swiffer.de/pics/backs/swiff1.gif" border="0" alt="">

    oder http://dict.leo.org/?search=niffy? ;)

    © Eddie Traversa (nirvana.media3.net)

    "©" sagt alles...

    To add more shock to your site, visit www.DHTML Shock.com

    Muhaha; wie wahr, wie wahr.

    für jede hilfe dankbar

    Nicht dass du denkst, dass ich dich vergackeiern[tm] will...

    SCNR.
    Mathias

    --
    Remember: KING KONG Died For Your Sins!
    "Wie ein gefoppter Nachtmahr der auf Tücke sinnt..." (Hugo Ball, "Die Katze")