clickイベントで、aタグのhref情報を取得

firefox起動→ページロード時に、全てのaタグにonclickイベントを付加して
javascriptでhrefの情報を取得するってことをやっていたけど
どうも納得いかなかったので、別の方法を模索していたら見つけた。

window.addEventListener("click", {
  handleEvent: function (e) {
    alert(e.target);
  }
}, false);

これでどこでもクリックした際に、target先が取得できる。
参考:2008年03月12日の記事一覧 - 読書と技術となんか色々のログ


ちなみに、全てのaタグにonclickイベントを付加するやり方はこちら。

// 読み込んだページに対する動作。
window.addEventListener("load", function() { myExtension.init(); }, false);
var myExtension = {
    init: function() {
    var appcontent = document.getElementById("appcontent");   // ブラウザ
    if(appcontent)
        appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, true);
    },
    
    onPageLoad: function(aEvent) {
        var doc = aEvent.originalTarget; // doc は "onload" event を起こしたドキュメント
        var js = doc.createElement("script");
        js.type = "text/javascript";
        js.text = "var all = document.getElementsByTagName('*');var n = all.length;for (i=0; i<n; ++i) {    var el = all[i];    var tag = el.tagName;    if (tag == 'A') {        el.onclick = onclick2;    }}     function onclick2()    {        var el = document.activeElement;        var url = el.href;        alert(url);    }";
        doc.body.appendChild(js);
    }
}

js.textんとこがちと読みにくいけどご勘弁を。
別ファイルへの参照ができなかったので、べた書きです。

追記:imgタグにhrefつけた時にtargetが取得できなかったので以下に書き換え。
e.target

e.target.parentNode.href