Irregluar: Inhalt onClick auslesen

Hallo liebe Mitstreiter der Welt des www.

Ich habe ein kleinens problem. Zum Debuggen meiner Page schreibe ich gerade einen Funktion zum auslesen von Links die auf einen online Shop zugreifen. Diese sind aber durch unterschiedlichen Programmierstand einmal als a tags, welche kein problem darstellen und in tr bzw td tags als onclick event hinterlegt.

also <tr ..... onClick="self.location.href=........"> .....

da diese links auf fehlende daten im shop verlinken könnten, zb durch ersetzte datensätze könnte nach einem artikel gesucht werden der nicht mehr vorhanden ist und der besucher bekommt nur eine leere seite zurück geliefert. um dies zu vermeiden möchte ich alle links in einer exterenen php seite checken also die in dem link übergebene variable auslesen link zb index.php?suche=XXXXXXX

aus normalen <a href="">link</a> tags ist das kein problem aber versuche ich  <td onClick="self.location.href='index.php?suche=XXXXXX';">.... auszulesen bekomme ich immer ein

function anonymous()
{
self.location.href='index.php?suche=XXXXXX';
}

zurück das ich nicht mit meinem match() durchlaufen kann

innerhalb der function sieht mein ansatz wie folg aus :

var linkstr=document.getElementsByTagName('tr');

for(var i = 0; i <linkstr.length; i++){
if(linkstr[i].onclick){
   var shoplink = linkstr[i].onclick;
   var ausgabe = shoplink.match(/suche=(\w+)/);
   if(ausgabe != null) gefunden+="|" + ausgabe[1];
   }
}

ausgabe wird dann entsprechen an meine externe php weitergeleitet

nun meine frage wie ist es möglich den reinen inhalt des onclick events zurück zubekommen also nur self.location.href.......
wahrscheinlich ist der lösungsweg einfach aber ich steh wohl auf der leitung

  1. Hallo,

    aus normalen <a href="">link</a> tags ist das kein problem aber versuche ich  <td onClick="self.location.href='index.php?suche=XXXXXX';">.... auszulesen bekomme ich immer ein

    function anonymous()
    {
    self.location.href='index.php?suche=XXXXXX';
    }

    zurück das ich nicht mit meinem match() durchlaufen kann

    Eigentlich bekommst Du eine Referenz auf die Funktion onclick() zurück. Bei der Ausgabe z.B. per alert() wird aber schon automatisch .toString() angewendet, so dass diese Ausgabe herauskommt.

    innerhalb der function sieht mein ansatz wie folg aus :

    var linkstr=document.getElementsByTagName('tr');

    for(var i = 0; i <linkstr.length; i++){
    if(linkstr[i].onclick){
       var shoplink = linkstr[i].onclick;
       var ausgabe = shoplink.match(/suche=(\w+)/);
       if(ausgabe != null) gefunden+="|" + ausgabe[1];
       }
    }

    nun meine frage wie ist es möglich den reinen inhalt des onclick events zurück zubekommen also nur self.location.href.......

    Nein, aber Du kannst die von linkstr[i].onclick zurückgegebene Funktionsreferenz mit der Methode .toString() in einen String umwandeln. Diesen kannst Du dann per RegEx prüfen.

    for(var i = 0; i <linkstr.length; i++){
    if(linkstr[i].onclick){

    var shoplink = linkstr[i].onclick.toString();

    var ausgabe = shoplink.match(/suche=(\w+)/);
       if(ausgabe != null) gefunden+="|" + ausgabe[1];
       }
    }

    viele Grüße

    Axel

    1. Vielen Dank lieber Axel !

      hat sehr gut funktioniert :) wusste doch das ich eigentlich nur aufm schlauch stand.

      mfg

      Freddy