laos: online oder offline ?

Hallo,

der Link auf einer CD-Rom-Präsentation soll abfragen, ob der User eine aktive Internet-Verbindung hat (z.B. Flatrate) oder offline ist.
Ist eine aktive Internet-Verbindung vorhanden, funktioniert der externe Link ohne weiteres, hat der User keine Verbindung zum Internet, wird eine Meldung ausgegeben.

Sebastian schrieb bei meinem letzten Posting (welches ungelöst im Archiv versunken ist):

So oder so ähnlich müßte es gehen (ungetestet):

var myURL = "www.meinserver.de";

// normalize href
var URI = w.location.href.toString();
URI = URI.toLowerCase();

if(URI.indexOf(myURL)==-1)alert("Internetverbindung erforderlich!");

Und wie das eben oft so ist, bei ungetesteten Antworten, die einem mal eben so in den Sinn kommen ...
Das klappt leider nicht (auch nicht ohne "w.")

Folgende Version funktioniert online und gibt offline eine Meldung aus:

<script>
function www()
<!--
{
var myURL = "www.server.de";

var URI = location.href

if(URI.indexOf(myURL)==-1)
{
alert("Internetverbindung erforderlich!");
}
else
location.href="http://server.de";
}
//-->
</script>

<a href="javascript:www();">

Allerdings sollte der Link auch funktionieren, wenn man ihn  m i t   a k t i v e r   I n t e r n e t - A n b i n d u n g  lokal von der CD aus Klickt. Tut er nur nicht :-((

mfg,
laos

  1. Hallo,

    location.href verlangt eine URI, alos schön www. mit angeben.

    Mit

    window.location.href="http://www.server.de";

    sollte das dann aber funktionieren, siehe

    http://selfhtml.teamone.de/javascript/objekte/location.htm#href

    da funktioniert das auch von offline anzeigen zu online-Seite wechseln.

    1. Hi,

      location.href verlangt eine URI,

      richtig.

      alos schön www. mit angeben.

      Unsinn. Ob in einer URL[1] ein "www" vorkommt, ist von der URL abhängig, nicht vom "www". Diese drei Buchstaben haben per se nicht die geringste Notwendigkeit.

      [1] Bei einer URI ohnehin nicht; eine URI kann auch relativ sein.

      Cheatah

      1. Hi,

        location.href verlangt eine URI,

        richtig.

        alos schön www. mit angeben.

        Unsinn. Ob in einer URL[1] ein "www" vorkommt, ist von der URL abhängig, nicht vom "www". Diese drei Buchstaben haben per se nicht die geringste Notwendigkeit.

        geb ich dir so recht. Allerdings testet das orginalscript auf
         "www.server.de", und dann sollte man auch das "www." mit angeben, wenn man zu dieser seite will.

        1. Hi,

          Allerdings testet das orginalscript auf
          "www.server.de", und dann sollte man auch das "www." mit angeben, wenn man zu dieser seite will.

          ja, das ist nicht von der Hand zu weisen.

          [1] Bei einer URI ohnehin nicht; eine URI kann auch relativ sein.
          Kann sie in diesem Fall auch nicht, da er von einer lokalen Seite (auf der CD in seinem Rechner) auf eine online-Seite wechseln möchte.

          Ich wollte nur auf den Unterschied zwischen "URL" und "URI" hinweisen, nicht mehr :-)

          Cheatah

      2. Hi

        [1] Bei einer URI ohnehin nicht; eine URI kann auch relativ sein.

        Kann sie in diesem Fall auch nicht, da er von einer lokalen Seite (auf der CD in seinem Rechner) auf eine online-Seite wechseln möchte.

        Wie soll das mit einem relativen Bezug gehen ? ;-)

  2. Hi,

    der Link auf einer CD-Rom-Präsentation soll abfragen, ob der User eine aktive Internet-Verbindung hat (z.B. Flatrate) oder offline ist.

    das lässt sich nur auf einem Weg prüfen: Mit verbundenen Augen ins Schwimmbecken springen. Entweder ist Wasser drin, dann ist alles gut; oder nicht, dann bekommt der User eine Beule in Form einer entsprechenden Meldung seines Browsers. Am wenigsten dick ist diese Beule vermutlich, wenn per JavaScript der Browser gebeten wird, eine externe Grafik zu laden (_falls_ dieser dazu bereit ist) - das Problem ist, dass Dir maximal "Fehler" als Information geliefert wird (und ggf. auch erst nach längerer Zeit), und kein Weg existiert, "Client ist offline" von "Server ist offline", "Server hat Ressource nicht gefunden" oder "Internet ist explodiert, bitte lokale Kopie verwenden" zu unterscheiden.

    Ergo: Geh davon aus, dass der User online ist. Ist er es nicht, wird er auch mit einer entsprechenden Fehlermeldung umzugehen wissen.

    Cheatah

  3. <html>
    <head>
    <script type="text/javascript">
    function OK()
     {
     alert('Ja, Du bist online!');
     window.close();
     }
    function NOF()
     {
     alert('Nein, bist Du nicht!');
     window.close();
     }
    </script>
    </head>
    <body>
    <a href=""></a>
    <img
     src="http://www.purpurhain.de/icon.gif"
     onload="OK(this.src);"
     onerror="NOF(this.src)"
     alt=""
     height=1
     width=1

    </body>
    </html>

    Hi,

    müsste gehen.

    Gruss,
    Lude

    PS: Danke auch an Mr PurpurHain

  4. Hallo,

    also ich versteh gar nicht, was Sebastian in dem ersten Vorschlag mit der Aktion
     var URI = w.location.href.toString();
     URI = URI.toLowerCase();
    überhaupt anstellen will ?-| Jedenfalls gehe ich mal stark davon aus, dass allein die Deklaration einer URL (var myURL = "www.meinserver.de";) nicht genügt, um den Browser zu veranlassen, (zu versuchen) mit dem Internet in Verbindung zu treten.

    Aus diesem Grund scheint mir auch der Vorschlag von Cheatah und Lude am plausiebelsten. Das Script von Lude funktioniert jedenfalls wunschgemäß - bleiben nur die Fragen offen,
     ob das auch in jedem gängigen Browser und auf jeder Plattform funktioniert und
     ob der Browser, falls offline, nicht zu lange blokiert wird, wenn er vergeblich versucht die externe Grafik zu laden und womöglich dann doch eine Fehlermeldung ausgibt (Cheatah deutet sowas an...).

    Davon auszugehen, dass ein User, der sich lokal eine CD-Rom-Präsentation ansieht online ist, halte ich für Schwachsinn.

    Naja,
    mittlerweile musste ich meine CD schon abliefern und habe in das Popupfenster eine verlinkte Grafik vorgeschaltet:

    <script>
    <!--
    function www()
    {
    var agree=confirm("Eine Verbindung mit dem Internet ist erforderlich.\nWollen Sie die Animation starten?");
    if (agree)
    location.href="http://www.animati.on"
    else
    top.close();
    }
    //-->
    </script>

    <a href="#" onclick="javascript:www();" title="Internet-Verbindung erforderlich"><img src="grafik.gif"></a>

    Die Sache mit dem Abfragen ist zwar ggf. nervig, funktioniert jedoch zumindest zuverlässig.

    cu,
    laos