sariman: Geklickten Link feststellen und dessen Target herausfinden

Beitrag lesen

Es wäre viel einfacher den klick auf dem Dokument abzufangen und anhand des Event Objektes herauszufinden ob der Klick auf einem Link stattgefunden hat.

window.document.onclick = function(e) {

if(!e) e = window.event;
var obj = e.target || e.srcElement;
if(obj.tagName && obj.tagName.toUpperCase() == 'A') return !!alert('ein Link');
};


>   
> Struppi.  
  
diese Variante erkennt wirklich den Link und verfolgt das Linkziel auch nicht. Schön und gut. Das tut sie aber nur wenn man den Link klickt. Ich darf aber den Link nicht anfassen. Denn ich hab in meinem xul (Beschreibungssprache für Firefox AddOns) sowas stehen:  
  
~~~xml
  
<popup id="contentAreaContextMenu">  
 <menuitem id="rightclick" label="&cm-entry;" accesskey="B"  
 insertafter="context-stop" oncommand="booklink();"/>  
</popup>  

Diese zwei Zeilen fügen dem Kontexmenü einen Eintrag hinzu, der dann etwa so ausschauen wird: "Bookmark this link". Wenn der Benutzer mit der rechten Maustaste den Kontextmenü öffnet und diesen Eintrag auswählt, wird die bookmark() aufgerufen. Und die schaut (verienfacht) so aus:

  
function bookmark()  
{  
  macheRequest('http://eineWebSeite/server/addBookmark?url=' + getURL());  
  
}  

Ich tue eigentlich nichts anderes als bookmarken, aber statt das lokal auf dem Rechner zu speichern, schicke ich die URL an den Server. Ich muss also nur feststellen können, ob der Mauszeiger auf einem Link war, als die Methode bookmark() aufgerufen wurde. Wenn nicht, hole ich einfach die aktuelle URL, die im Adressfeld des Browsers steht. Wenn ja, dann hole ich die Zieladresse des Links. Ganz wie bei del.icio.us. Das ist aber anscheinend komplizierter als ich dachte