prof: Aufruf einer anderen HTML-Datei ohne <a ...

Im Anschluss an eine Flashdetection möchte ich sofort (ohne Bestätigung durch Klick auf einen Link) eine flashfreie HTML-Datei aufrufen!
(Wie) geht so etwas?
Danke Prof

  1. Hi,

    Im Anschluss an eine Flashdetection möchte ich sofort (ohne Bestätigung durch Klick auf einen Link) eine flashfreie HTML-Datei aufrufen!

    warum? Ist die vorhandene Seite für den Besucher nicht gut genug?

    (Wie) geht so etwas?

    Wie machst Du denn diese ominöse Flashdetection - und warum eigentlich?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Flashseite ist super und nicht mal sehr speicherintensiv. Aber es gibt leider (noch)zu viele Modemsurfer, die bei dem ersten Anzeichen von Flash sofort die Panik kriegen und die Seite zu machen.

      Flashdetection ist lehrbuchmäßig und funktioniert. In der fünftletzten Zeile kann man den Non-Flash-Verweis einfügen!
      Prof

      <script language="JavaScript" type="text/javascript">
      <!--
      // -----------------------------------------------------------------------------
      // Globale Variablen
      // Erforderliche Hauptversion von Flash
      var requiredMajorVersion = 6;
      // Erforderliche Unterversion von Flash
      var requiredMinorVersion = 0;
      // Erforderliche Flash-Revision
      var requiredRevision = 0;
      // Die unterstützte JavaScript-Version
      var jsVersion = 1.0;
      // -----------------------------------------------------------------------------
      // -->
      </script>
      <script language="VBScript" type="text/vbscript">
      <!-- // Visual Basic-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player ActiveX-Steuerelements erforderlich
      Function VBGetSwfVer(i)
        on error resume next
        Dim swControl, swVersion
        swVersion = 0

      set swControl = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i))
        if (IsObject(swControl)) then
          swVersion = swControl.GetVariable("$version")
        end if
        VBGetSwfVer = swVersion
      End Function
      // -->
      </script>
      <script language="JavaScript1.1" type="text/javascript">
      <!-- // Client-Browsertyp ermitteln
      var isIE  = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
      var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
      var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
      jsVersion = 1.1;
      // JavaScript-Hilfsprogramm ist zur Ermittlung der Versionsinformationen des Flash Player Plug-Ins erforderlich
      function JSGetSwfVer(i){
       // NS/Opera-Version >= 3 auf Flash-Plug-In im Plug-In-Array prüfen
       if (navigator.plugins != null && navigator.plugins.length > 0) {
        if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
         var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
              var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
         descArray = flashDescription.split(" ");
         tempArrayMajor = descArray[2].split(".");
         versionMajor = tempArrayMajor[0];
         versionMinor = tempArrayMajor[1];
         if ( descArray[3] != "" ) {
          tempArrayMinor = descArray[3].split("r");
         } else {
          tempArrayMinor = descArray[4].split("r");
         }
              versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
                  flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
             } else {
         flashVer = -1;
        }
       }
       // MSN/WebTV 2.6 unterstützt Flash 4
       else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
       // WebTV 2.5 unterstützt Flash 3
       else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
       // älteres WebTV unterstützt Flash 2
       else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
       // Ermittlung in allen anderen Fällen nicht möglich
       else {

      flashVer = -1;
       }
       return flashVer;
      }
      // Wenn der Funktionsaufruf ohne Parameter erfolgt, gibt diese Funktion einen Gleitkommawert zurück,
      // bei dem es sich entweder um die Flash Player-Version oder um 0.0 handelt.
      // Beispiel: Flash Player 7r14 gibt 7.14 zurück.
      // Wenn reqMinorVer, reqMajorVer, reqRevision aufgerufen wird, wird 'true' zurückgegeben, sofern diese bzw. eine höhere Version verfügbar ist
      function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
      {
        reqVer = parseFloat(reqMajorVer + "." + reqRevision);
          // Versionen rückwärts durchlaufen, bis die neueste Version gefunden wird
       for (i=25;i>0;i--) {
        if (isIE && isWin && !isOpera) {
         versionStr = VBGetSwfVer(i);
        } else {
         versionStr = JSGetSwfVer(i);
        }
        if (versionStr == -1 ) {
         return false;
        } else if (versionStr != 0) {
         if(isIE && isWin && !isOpera) {
          tempArray         = versionStr.split(" ");
          tempString        = tempArray[1];
          versionArray      = tempString .split(",");
         } else {
          versionArray      = versionStr.split(".");
         }
         versionMajor      = versionArray[0];
         versionMinor      = versionArray[1];
         versionRevision   = versionArray[2];

      versionString     = versionMajor + "." + versionRevision;   // 7.0r24 == 7.24
         versionNum        = parseFloat(versionString);
               // ist die Hauptrevision >= angeforderte Hauptrevision UND die Nebenversion >= angeforderte Nebenversion
         if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
          return true;
         } else {
          return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false );
         }
        }
       }
       return (reqVer ? false : 0.0);
      }
      // -->
      </script>

      </head>

      <BODY text=white vLink=black aLink=black link=black bgColor=black>
      <br><br><br><br><br><br>
      <center>
      <script language="JavaScript" type="text/javascript">
      <!--
      var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
      if(hasRightVersion) {  // sofern eine akzeptable Version ermittelt wurde
          var oeTags = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
          + 'width="400" height="331"'
          + 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">'
          + '<param name="movie" value="index.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />'
          + '<embed src="index.swf" quality="high" bgcolor="#ffffff" '
          + 'width="400" height="331" name="index" align="middle"'
          + 'play="true"'
          + 'loop="false"'
          + 'quality="high"'
          + 'allowScriptAccess="sameDomain"'
          + 'type="application/x-shockwave-flash"'
          + 'pluginspage="http://www.macromedia.com/go/getflashplayer">'
          + '</embed>'
          + '</object>';
          document.write(oeTags);   // Flash-Film einbetten
        } else {  // Flash ist veraltet, oder das Plug-In wurde nicht ermittelt
          var alternateContent = 'Alternativer HTML-Inhalt sollte hier platziert werden.'
         + 'Für diesen Inhalt ist der Macromedia Flash Player erforderlich.'
          + '<a href=html/index2.htm><font color="white">weiter</a>';
          document.write(alternateContent);  // Nicht aus Flash stammenden Inhalt einfügen
       }
      // -->
      </script>

      1. Hallo Prof,

        Ist dir klar, dass ein User, der Javascript deaktiviert hat, bzw. ein Such-Robot auf deiner Seite keinerlei Content vorfindet?
        Du solltest auf jeden Fall noch einen <noscript>-Bereich einfügen, in dem du auf die Flash-freie Seite verweist.

        Zu deinem eigentlichen Problem: Das http://de.selfhtml.org/javascript/objekte/location.htm#allgemeines@title=location-Objekt sollte dir weiterhelfen.

        Ciao,
        DeWitt

        --
        selfcode ie:% fl:( br:< va:) ls:} fo:| rl:( n4:° ss:) de:] js:| ch:] sh:( mo:| zu:(
        << Life is just a moment in eternity, yet every life echoes there >>
        1. Ist dir klar, dass ein User, der Javascript deaktiviert hat, bzw. ein Such-Robot auf deiner Seite keinerlei Content vorfindet?
          Du solltest auf jeden Fall noch einen <noscript>-Bereich einfügen, in dem du auf die Flash-freie Seite verweist.

          Nein, das war mir in der Deutlichkeit nicht klar und ich werde sofort etwas unternehmen!

          Dann kann ich mir das location-Objekt wohl erst mal sparen!

          Danke - Prof

          1. Hallo Prof,

            Dann kann ich mir das location-Objekt wohl erst mal sparen!

            Um die direkte Weiterleitung bei aktivem JS zu erzielen, nein.

            Mit freundlichem Gruß
            Micha

            --
            LeagueEditor JavaScript :: simple Ligaverwaltung auf der Basis von JavaScript || JS Tetris :: für zwischendurch
            1. Erst mal danke!
              Habe den Refresh ausgeschaltet und überlasse dem User die freie Wahl zwischen Flash und HTML. Leider, denn er weiß nicht, was ihm beim Flash entgeht ...
              :-( Prof

      2. hi,

        Flashseite ist super und nicht mal sehr speicherintensiv. Aber es gibt leider (noch)zu viele Modemsurfer, die bei dem ersten Anzeichen von Flash sofort die Panik kriegen und die Seite zu machen.

        Es gibt auch genügend User, die Falsh aus anderen Gründen schlicht und einfach nicht _mögen_, und eine HTML-Umsetzung der Inhalte bevorzugen würden.

        Flashdetection ist lehrbuchmäßig und funktioniert. In der fünftletzten Zeile kann man den Non-Flash-Verweis einfügen!
        [mehrere Bildschirmseiten langes Javascript-Gewusel]

        Und diesen ganzen Blödfug zu laden, magst du den Modembenutzern zumuten?

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
      3. Hallo.

        Flashseite ist super und nicht mal sehr speicherintensiv. Aber es gibt leider (noch)zu viele Modemsurfer

        Der sogenannte Flashenhals.
        MfG, at

  2. Hi,

    Im Anschluss an eine Flashdetection möchte ich sofort (ohne Bestätigung durch Klick auf einen Link) eine flashfreie HTML-Datei aufrufen!
    (Wie) geht so etwas?

    einfachere Lösung: baue eine HTML-Seite, die per Meta-Refresh 1s nach dem Aufruf auf eine andere weiterleitet, und binde dort eine winzige, unsichtbare Flash-Animation ein, die umgehend nachdem sie geladen wurde zu einer anderen Seite weiterleitet. Ist Flash verfügbar leitet die Flash-Animation z. B. zu einer "flash.htm" weiter, bevor es das Meta-Refresh tut, ist Flash nicht verfübar, wird bei allen in der Praxis verwendeten Browsern nach 1s zu einer "html.htm" weitergeleitet, die für Flash-lose Besucher da ist. Ein Modem-User der Flash installiert hat sieht dann aber trotzdem die Flash-Version - ich würde dir dazu raten, entweder eine Auswahlmöglichkeit anzubieten, oder Flash gleich wegzulassen, das grauenvoll und uneinheitlich zu bedienen ist und mangelhafte Barrierefreiheit aufweist.

    Schöne Grüße
    Julian

    1. Hi,

      einfachere Lösung: baue eine HTML-Seite, die per Meta-Refresh 1s nach dem Aufruf auf eine andere weiterleitet

      sorry, aber das ist Unsinn.
      dieser meta-refresh kann im Browser deaktiviert sein und Suchmaschinen mögen sowas gar nicht.

      freundliche Grüße
      Ingo

      1. Moin!

        einfachere Lösung: baue eine HTML-Seite, die per Meta-Refresh 1s nach dem Aufruf auf eine andere weiterleitet
        sorry, aber das ist Unsinn.
        dieser meta-refresh kann im Browser deaktiviert sein und Suchmaschinen mögen sowas gar nicht.

        Beweise? Dass man in Browsern alles abschalten kann - ok, manche Leute tun das. Aber dass Suchmaschinen das nicht mögen, wäre mir neu.

        - Sven Rautenberg

        --
        "Love your nation - respect the others."
        1. Hello out there!

          meta-refresh […] Suchmaschinen mögen sowas gar nicht.
          dass Suchmaschinen das nicht mögen, wäre mir neu.

          Im Märchen wird das so erzählt. Nur ein Märchen?

          See ya up the road,
          Gunnar

          --
          “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        2. Hi,

          dieser meta-refresh kann im Browser deaktiviert sein und Suchmaschinen mögen sowas gar nicht.

          Beweise? Dass man in Browsern alles abschalten kann - ok, manche Leute tun das. Aber dass Suchmaschinen das nicht mögen, wäre mir neu.

          mit einem Beweis kann ich leider nicht dienen, weil es mich noch nicht interessiert hatte, diese oft gelesene Aussage durch einen Praxistest zu verifizieren. Aber die Logik sollte hier doch eigentlich ausreichen: Suchmaschinen, die relavante Ergebnisse präsentieren wollen, wären schlecht beraten, eine Seite, die (in den meisten Fällen) nur eine Sekunde lang angezeigt wird, zu indizieren, oder?

          freundliche Grüße
          Ingo

          1. Moin!

            dieser meta-refresh kann im Browser deaktiviert sein und Suchmaschinen mögen sowas gar nicht.

            Beweise? Dass man in Browsern alles abschalten kann - ok, manche Leute tun das. Aber dass Suchmaschinen das nicht mögen, wäre mir neu.
            Aber die Logik sollte hier doch eigentlich ausreichen: Suchmaschinen, die relavante Ergebnisse präsentieren wollen, wären schlecht beraten, eine Seite, die (in den meisten Fällen) nur eine Sekunde lang angezeigt wird, zu indizieren, oder?

            Indizieren vielleicht nicht - das wäre mit dem beabsichtigten Inhalt (Flash-Test und fallweise Weiterleitung) ja auch nicht notwendig.

            Aber zu dem Weiterleitungsziel gehen - das kriegen Spider hin. Also spricht sehr wenig gegen Meta-Weiterleitungen aus Suchmaschinensicht. Finde ich zumindest.

            - Sven Rautenberg

            --
            "Love your nation - respect the others."
            1. Hi,

              Aber zu dem Weiterleitungsziel gehen - das kriegen Spider hin. Also spricht sehr wenig gegen Meta-Weiterleitungen aus Suchmaschinensicht. Finde ich zumindest.

              Prinzipiell würde das stimmen - wenn da nicht so viele Spammer wären, die auch über meta refresh Suchmaschinen austricksen wollten. Zumindest bei einer unmittelbaren weiterleitung, also 0, habe ich schon von einigen Fällen gelesen, die mit solchen Seiten aus dem Index geflogen waren.

              freundliche Grüße
              Ingo

            2. hi,

              Indizieren vielleicht nicht - das wäre mit dem beabsichtigten Inhalt (Flash-Test und fallweise Weiterleitung) ja auch nicht notwendig.

              Aber zu dem Weiterleitungsziel gehen - das kriegen Spider hin. Also spricht sehr wenig gegen Meta-Weiterleitungen aus Suchmaschinensicht. Finde ich zumindest.

              Dann wird also (vermutlich) nur noch das HTML-Dokument, auch welches weitergeleitet wurde, von den Suchmaschinen indiziert und auch dem Sucher als Ergebnis präsentiert - wer sucht, landet also "immer" beim HTML.
              Da frag ich mich dann nur noch, was eigentlich _für_ die Flash-Version der Seite spricht?

              scnr,
              wahsaga

              --
              /voodoo.css:
              #GeorgeWBush { position:absolute; bottom:-6ft; }
      2. Hi,

        Hi,

        einfachere Lösung: baue eine HTML-Seite, die per Meta-Refresh 1s nach dem Aufruf auf eine andere weiterleitet
        sorry, aber das ist Unsinn.
        dieser meta-refresh kann im Browser deaktiviert sein und Suchmaschinen mögen sowas gar nicht.

        es tut mir leid, die Lösung die ich vor 3 Jahren noch verwendete sah natürlich anders aus: Lass den Meta-Refresh weg und baue eben diese Flash-Animation, die die Weiterleitung verursacht, direkt auf die HTML-Seite. Damit wären beide von Ingo genannten Probleme erledigt.

        Schöne Grüße
        Julian

  3. Hallo,

    Im Anschluss an eine Flashdetection möchte ich sofort (ohne Bestätigung durch Klick auf einen Link) eine flashfreie HTML-Datei aufrufen!
    (Wie) geht so etwas?

    Du kannst Flash-Objekte auch anders ins HTML einbetten, siehe http://de.selfhtml.org/html/multimedia/objekte.htm#flash (weiter unten im Abschnitt, nicht der oberste Teil), http://www.alistapart.com/articles/flashsatay sowie http://aktuell.de.selfhtml.org/artikel/programmiertechnik/liveconnect/index.htm#html_flash (bei letzerem geht's um einiges mehr als bloß die Einbettung, es steht aber auch etwas dazu drin).

    Wenn Du Flash auf die obige Weise einbettest, führt das dazu, dass Du dann den Alternativinhalt direkt angeben kannst, der angezeigt werden soll, falls Flash nicht aktiv ist. Geht ganz ohne JavaScript und ist sehr einfach (folgendes Beispiel ist _nicht_ auf den Standard-Macromedia-Code bezogen und funktioniert damit _nicht_):

    <object ...>  
      <param ...>  
      ...  
      <param ...>  
      <p>Alternativer Inhalt</p>  
    </object>
    

    Mit der Methode treten unter ganz raren Umständen Browserprobleme auf, dies wurde im Archiv ausführlich diskutiert. Meiner persönlichen Einschätzung nach dürfte der Anteil an Surfen mit einem fehlerhaft installiertem IE5 und/oder einem anderen Problembrowser (IIRC gab es einige spezielle Opera-Versionen unter Linux, die die Methode nicht mochten) heutzutage gegen Null gehen, von daher würde ich persönlich zu dieser Methode raten. Das Streaming-Problem im IE ist natürlich weiterhin vorhanden, der oben von mir verlinkte englische Artikel erklärt aber, wie man das umgeht.

    Viele Grüße,
    Christian

    --
    "I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone." - Bjarne Stroustrup