Patrick: Teil einer URL ermitteln

Hallo JS-Cracks!

document.referrer liefert mir die gesamte URL, von wo aus der Besucher die darzustellende Seite aufruft. Soweit so gut.

Nun möchte ich abfragen, ob in dem gelieferten Wert die Zeichenkette "atomic-eggs.com" vorkommt. Denn der referrer liefert ja die gesamte URL, also könnte dies: atomic-eggs.com, www.atomic-eggs.com/news/news.html, www.atomic-eggs.com/goodbad/gute.html und überhaupt jede einzelne meiner Seiten sein!

Sollen "http://" (7 zeichen) und "www." (noch mal 4 Zeichen) mitgezählt werden, wenn ich das über substr() versuche?

Dieser Versuch hier:

if ((document.referrer.substr(0,25) == 'http://www.atomic-eggs.com') ((document.referrer.substr(0,21) == 'http://atomic-eggs.com')) ... dann soll halt was passieren...

bringt es jedenfalls nicht!

Thanks

if (city.referrer == frankfurt)
{ document.write('PAF (patrickaus' + city.referrer + '))

  1. Hallo JS-Cracks!

    document.referrer liefert mir die gesamte URL, von wo aus der Besucher die darzustellende Seite aufruft. Soweit so gut.

    Nun möchte ich abfragen, ob in dem gelieferten Wert die Zeichenkette "atomic-eggs.com" vorkommt. Denn der referrer liefert ja die gesamte URL, also könnte dies: atomic-eggs.com, www.atomic-eggs.com/news/news.html, www.atomic-eggs.com/goodbad/gute.html und überhaupt jede einzelne meiner Seiten sein!

    Sollen "http://" (7 zeichen) und "www." (noch mal 4 Zeichen) mitgezählt werden, wenn ich das über substr() versuche?

    Dieser Versuch hier:

    if ((document.referrer.substr(0,25) == 'http://www.atomic-eggs.com') ((document.referrer.substr(0,21) == 'http://atomic-eggs.com')) ... dann soll halt was passieren...

    bringt es jedenfalls nicht!

    Thanks

    if (city.referrer == frankfurt)
    { document.write('PAF (patrickaus' + city.referrer + '))

    Hallo!

    Hast du es schon mal mit einem Perl-Skript versucht?
    PERL ist ja dafür bekannt solche Aufgaben ohne Probleme zu lösen.

    Mit JS kenne ich mich nicht wirklich gut aus.
    Aber für solche Fälle haben wir doch ein paar Profis in diesem Forum.
    Zum Glück :-)

    Mfg Alex

    1. Hallo Alex!

      Hast du es schon mal mit einem Perl-Skript versucht?
      PERL ist ja dafür bekannt solche Aufgaben ohne Probleme zu lösen.

      PERL scheidet aus aus 2 Gründen:

      ich habe davon null Ahnung;
      ich habe auf Atomic Eggs keinen CGI-Zugang!

      Dennoch Danke für Deine schnelle Antwort!

      PAF (patrickausfrankfurt)

  2. Hi,
    ich hab mal was gesehen, was dir helfen könnte,
    kann aber nicht sagen ab welcher Java-Version es funtkioniert:

    <script language="JavaScript" type="text/javascript">
    <!--

    var eingabe = "http://www.atomic-eggs.com/news/news.html";

    var pos = eingabe.indexOf('atomic-eggs');
    if (pos > -1) { document.write('Is drin !!'); }
    else {document.write('Is nicht drin !'); }

    //-->
    </script>

    ".indexOf" liefert eigentlich die Zahl des Buchstabens wo der gesuchte String beginnt.
    Also wenn -1 rauskommt ist er nich vorhanden, ansonsten kommt der String vor.

    Ich hoffe es hilft dir weiter...

    Michael Timmerhaus

    1. Hallo Michael!

      an indexOf() habe ich nicht gedacht!!

      Naja, auf jeden Fall kannst Du hier unten mal schauen, ob ich es richtig gemacht habe :-)

      http://atomic-eggs.com/temp/test/referrer.html

      Bis danndann

      var surname = "Dieser Beitrag ist von PAF";
      var pos = eingabe.indexOf('PAF');
      if (pos > -1) { document.write
      ('patrickausfrankfurt'); }

      1. Re!

        Das ganze läßt sich sogar Zeilen- und Bytes-sparend wie folgt kürzen:

        <script language="JavaScript">

        if (document.referrer.indexOf('atomic-eggs') >-1)
        { document.write('So geht es auch'); }
        else { document.write('Siehe Quelltext!'); }

        </script>

        http://atomic-eggs.com/temp/test/referrer2.html

        Bis danndann

        PAF(patrickausfrankfurt)

        1. Hi!

          Das ganze läßt sich sogar Zeilen- und Bytes-sparend wie folgt kürzen:

          Ach geht das, ja? Na dann muss ich doch mal ein bisschen angeben... ;-)

          document.write((document.referrer.indexOf('atomic-eggs') > -1) ? 'So geht es auch' : 'Siehe Quelltext!');

          Wenn Du jetzt nach die Uebersichtlichkeits-Leerzeichen weglaesst, ist es natuerlich NOCH kuerzer. Du kannst das uebrigens auch ueber mehrere Zeilen verteilen, solange Du die Strings ganz laesst und nur am Ende ein Semikolon hinschreibst. (Das ist ja der Zweck des Semikolons.)

          http://atomic-eggs.com/temp/test/referrer2.html

          Und fuer die Netscaper (die sehen ja nur den "wysiwyg://" source code): view-source:http://atomic-eggs.com/temp/test/referrer2.html.

          Und bye
          Roland

          1. Hallo Roland!

            document.write((document.referrer.indexOf('atomic-eggs') > -1) ? 'So geht es auch' : 'Siehe Quelltext!');

            Diese Art einer if-Abfrage ist mir durchaus bekannt, aber kann ich eine vorher definierte funktion im abfrage string einbauen?

            so was wie:

            document.write((document.referrer.indexOf('atomic-eggs') > -1) ? 'meine_function()': 'meine_anderefunction()');

            Thx

            document.write((PAF) ? 'patrickausfrankfurt' : 'sonst gar keiner')

            1. Re hi Patrick!

              Diese Art einer if-Abfrage ist mir durchaus bekannt, aber kann ich eine vorher definierte funktion im abfrage string einbauen?

              Ja klar! Aber ohne die Apostrophe, denn die markieren ja einen String.
              document.write((document.referrer.indexOf('atomic-eggs') > -1) ? meine_function() : meine_anderefunction());

              Das condition?true-value:false-value Konstrukt gibt einfach das zurueck, was in dem jeweiligen Teil steht (also jenachdem ob die condition wahr ist, ne). Ob das ein Funktionsaufruf ist, der nebenbei noch das Fenster ein wenig auf dem Bildschirm rumwirbeln laesst oder nur ein einfacher Ausdruck, ist erstmal voellig egal. Das ist ja gerade das Geile an JS, versuch das mal mit Basic!

              Eigentlich ist der Rueckgabewert auch nicht so wichtig. So kannst Du ein if-else-Konstrukt auch einfach so schreiben:

              haste_bock ? mach_mer_was() : mach_mer_nuescht();

              alert(Calocybe ? 'Roland' : 'nich ich');

      2. Hallo,

        Danke !

        Wenn ich jedesmal ne Page kriegen würde...

        Das wäre ja genauso als ob Bill
        für jeden Windows-Absturz nen Pfennig bekommt.

        Warte mal... hat er ja ;-)

        Michael