00 Stimmen

URL per JavaScript prüfen

Frage von Gast | 21.09.2016 um 16:52

Hallo Leute, bin ein absoluter Java Script Anfänger und komme nicht weiter.

Ich habe einen DNS-Server, über den meine Seiten laufen.

Jetzt habe ich z.B. die URL "eins.seite.de" und "zwei.seite.de".

Ich möchte jetzt die URL überprüfen und wenn "eins" enthalten ist per iframe (ja iframe ist mist) eins.seite.de aufrufen und wenn es nicht enthalten ist dann zwei.seite.de aufrufen.

Mit

<html>
<head>
<title>Home</title>
</head>
<script>
  function urlpruefen() {
    var str = window.location;
    var pruefurl = "eins";
    if (str.indexOf(pruefurl) != -1) {
      alert('Der String enthält "eins"');
    } else {
      alert('Der String enthält kein "eins".');
    }
  }
</script>
<body>
<p>c</p>
</body>
</html>

geht es nicht.

Hilfe...

AntwortenPositivNegativDatumStimmen
1Beste Antwort1 Stimme

Dein Code enthält im wesentlichen zwei Probleme weswegen es nicht funktioniert:

  • window.location ist kein String sondern ein Objekt. Daher hat window.location auch keine Funktion .indexOf(). Einen String erhälst du zum Beispiel mit .toString(), weitere Möglichkeiten findest du hier.
  • Du definierst zwar die Funktion urlpruefen(), rufst sie aber niemals auf. Du müsstest also irgendwo die Zeile urlpruefen() ergänzen.

So müsste es richtig sein (einfach den script-Teil durch diesen hier ersetzen):

<script>
  function urlpruefen() {
  
    var str = window.location.toString();
    var pruefurl = "eins";
	
    if (str.indexOf(pruefurl) != -1) {
      alert('Der String enthält "eins"');
    } else {
      alert('Der String enthält kein "eins".');
    }
  }
  
  urlpruefen();  // hier wird die Funktion aufgerufen
</script>

Ob jetzt die generelle Vorgehensweise mit dem IFrame und so weiter vernünftig ist, lasse ich mal unkommentiert, das war ja nicht deine Frage.
21.09.2016 um 23:43

AntwortenPositiv Negativ
00 Stimmen

Super hat mir geholfen und direkt auch zu Verstehen gegeben was falsch läuft.

Habe da aber noch was:

Möchte das ganze etwas genauer eingrenzen:

<script>
function urlpruefen() {
  var str = window.location.toString();
  var pruefurl = "eins";
  var pruefst = "seite.com";
  if (str.indexOf(pruefurl) != -1 && str.indexOf(pruefst) != -1) {
    alert('Der String enthält "seite enthält eins und seite.com"');
  } else if (str.indexOf(pruefst) != -1 && str.indexOf(pruefurl = -1) {
    alert('Seite enthält "seite.com" aber nicht "eins".');
  }
}
urlpruefen(); // hier wird die Funktion aufgerufen
</script>

Funktioniert irgendwie nicht.

Fehlt da was ? Wäre super das letzte Rätsel zu lösen :)
22.09.2016 um 07:37

AntwortenPositiv Negativ
00 Stimmen

Sorry, habe vergessen zu erwähnen, dass daraus folgendes entstehen soll. Ich möchte die URL prüfen, ist eins & seite.com enthalten dann ist alles klar und er soll auch auf http://www.eins.seite.com/index.php/?=id=1 gehen (ist nur ein bsp).

Enthält die URL seite.com aber zwei oder drei (zwei.seite.com oder drei.seite.com > diese url habe ich nicht freigeschaltet) soll man auf http://www.start.seite.com weitergeleitet werden.

Hoffe jemand kann helfen :)
22.09.2016 um 07:44

AntwortenPositiv Negativ
00 Stimmen

Das Problem ist dieses mal dass du auch hinter dem else noch einmal dasselbe prüfst: du prüfst einmal ob A und B zutreffen, danach ob B und A zutreffen. Dadurch wird der Code im else niemals erreicht.

Du könntes es zum Beispiel so machen:

if (str.indexOf("seite.com") != -1) {
  if (str.indexOf("eins") = -1) {
    alert('Enthält "seite.com" und "eins".');
  } else {
    alert('Enthält "seite.com" aber nicht "eins".');
  }
} else {
  alert('Einthält nicht "seite.com".');
}

Zuerst prüfst du generell ob "seite.com" vorkommt, die Fallunterscheidung ob mit oder ohne "eins" wird nur durchgeführt falls "seite.com" vorkommt.
22.09.2016 um 12:41

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.