Archivlink: javarea.de Forum > JavaScript > den letzten KLick auf ein Link erkennen
Vollständigen Link anzeigen: javarea.de Forum > JavaScript > den letzten KLick auf ein Link erkennen

Pages: [1]

geschrieben von derSteffen am 19.12.2007 - 20:32
Hallo,

ich versuche folgendes zu realisieren:

Auf einer Webseite soll ein Javascript den zuvor geklickten Link erkennen. Geht so etwas überhaupt? Also ich meine auch nicht, dass das Javascript die zuvor besuchte Seite erkennen soll.

Der Grund ist folgender. Ich habe auf einer Seite eine Liste mit Artikeln. Bei einigen Artikeln möchte ich allerdings, wenn man auf mehr klickt, dass man auf der nächsten Seite eine Infomeldung über den Text bekommt (keine Alert-Meldung).

Also es müßte dann auch ein Zusammenspiel zwischen:
1. erkenne den letzten Klick
2. und hat dieser indexOf("weiterlesen") beinhaltet
3. und hat dieser indexOf("meine URL") beinhaltet -> also kam der letzte Linkklick auch von meiner Seite

Kann mir jemand darüber Infos geben? Vor allem würde mich interessieren ob man den letzten Klick ausgeben kann?

Vielen Dank schonmal

Steffen

geschrieben von okley am 19.12.2007 - 20:43
Du kannst mit Javascript die zuvor besuchte Seite auslesen:
http://de.selfhtml.org/javascript/o....m#referrer
Das ginge auch mit PHP.

Deinem "weiterlesen" Link kannst du ein argument anhängen z.B. <a href="artikelDetail.html?artNr=3" title="Artikel Nummer 3">weiterlesen</a>

Auf der neuen Seite (artikelDetail.html) hast du dann ein Javascript, dass dir die 3 aus der URL extrahiert. Dazu gibt es bereits eine Funktion:
PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 

<?
// returns get parameter value with name strParamName from current pages url (location.href)
function getURLParam(strParamName){
      var 
strReturn "";
      var 
strHref window.location.href;
      if ( 
strHref.indexOf("?") > -){
        var 
strQueryString strHref.substr(strHref.indexOf("?")).toLowerCase();
        var 
aQueryString strQueryString.split("&");
        for ( var 
iParam 0iParam aQueryString.lengthiParam++ ){
          if (
aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -){
            var 
aParam aQueryString[iParam].split("=");
            
strReturn aParam[1];
            break;
          }
        }
      }
      return 
unescape(strReturn);
}
?>



1. wird damit hinfällig, da du die artNr als Argument mitgibst
2. ebenfalls, gleicher Grund
3. kannst du mit dem document.refferer prüfen

geschrieben von derSteffen am 19.12.2007 - 21:11
Recht vielen Dank!

PHP-Quelltext
1: 
2: 
3: 
4: 
5: 
6: 

<?
Also eigentlich kann man sagen ich habe auf der vorherigen Seite 
(also die Seite mit den Artikelnzwei Arten von Links.
Die 
normalen http://meinedomain/index.php?text_id=11 

Und die, wo eine Message erscheinen sollhttp://meinedomain/index.php?action=read_now&READ_id15
?>



PHP-Quelltext
1: 
2: 
3: 
4: 
5: 

<?
Wenn ich auf beiden der Links klicke sieht 
die URL meiner aufgerufene Seite dann so aus:

http://meinedomain/artikel_info.php?text_id=11 , bzw. http://meinedomain/artikel_info.php?text_id=15
?>



Um es noch einmal genauer zu beschrieben! :-) Somit habe ich ja gar keine Chance ein vergleich zur aktuellen Seite zu ziehen! Muss ich das bei deinem Script?

So nun muss ich wirklich total dumm fragen....
ich sehe in deinem Script gar keine "document.write" Anweisung! Wie mache ich das denn, dass ich der HTML-Datei sage hier schreibe jetzt die Info.

Danke

geschrieben von okley am 19.12.2007 - 21:46
Nur so nebenbei: Warum machst du normalen Text in PHP-Code?

Nun zum Thema ;)

Zitat
 
Und die, wo eine Message erscheinen soll: http://meinedomain/index.php?action....;READ_id15


Idealerweise solltest du hier ?action=read_now&read_id=15 verwenden.
Ich verstehe nicht genau die "zwei Arten von Links". Sowie ich das sehe benötigst du in diesem Fall kein Javascript, da du ja PHP zur Verfügung hast.
Du möchtest doch von der index.php, wo die Artikel in Kurzfassung stehen auf eine detail Seite gehen, wo der ganze Artikel steht? Dann mach einfach ein Link mit index.php?page=artikelDetail&action=read&id=15

In der index.php prüfst du dann welche "page" angezeigt werden soll. Bei der artikelDetail gibst du dann mit echo den Artikel aus der zur "id" im Parameter passt.

Wenn du im Link die index.php angibst hast du die Möglichkeit nur einen Teil deiner Seite auszutauschen, dass heisst z.B. dass du das Menu statisch als HTML machen kannst und den Inhaltbereich dynamisch abhängig vom page Parameter ausgibst.
Siehe:
http://www.tizag.com/phpT/include.php
http://www.dotdragnet.com/content.php?aid=18

Das document.write brauchst du nicht. Das machst du alles mit php.



geschrieben von derSteffen am 19.12.2007 - 22:05
Ach mit PHP soll es gar nicht klappen! Es soll nur mit JavaScript funktionieren!

Kannst du mir bitte noch ein paar Sachen zu deinem Script kurz beantworten?

1. Erkennt das Script den zuvor angeklicken Link?
2. Muss ich dann in deinem Script die "?" nur durch "READ" ersetzen
3. Dieses Script überprüft doch nur aber passiert danach auch was? eine Art if - else Geschichte?

Tut mir leid, ich bin in dieser Hinsicht nicht so eine Leuchte.

MfG


Powered by: JBB v.2.0.4 Copyright ©2000-2006, www.javarea.de.