http://d.hatena.ne.jp/brazil/20070103/1167788352
またIOService.newURIというFirefoxのプラグイン用のクラスを使ってみましたがうまくいきませんでした
http://d.hatena.ne.jp/brazil/20070708/1183877867
じゃあどうしたかと言うと
function getURLOnHref() {
var urlOnHref = "";
var tag = document.popupNode.tagName;
if (tag.toString() == "A") {
// urlOnHref = document.popupNode.getAttribute("href");
urlOnHref = document.popupNode.href;
} else {
urlOnHref = document.popupNode.innerHTML;
}
return urlOnHref;
};
何をしているかというと
右クリックを開いたときのカーソルの下にある属性情報を取得してきて
それがAタグだったらhrefを取得するという命令なのですが、ここで
getAttribute("href")
ではなく
href
で直接プロパティ値を指定するとブラウザが良い感じで解釈して絶対パスで返してくれるそうです
今回の場合はpopupNodeならばうまくhrefが取得できましたが、冒頭のURLに記載があるように
XULでは、firstNodeなどのオブジェクトからはhrefがうまく取得できないようです
(確かnullになってしまったような・・・)
ただ、popupNodeも使わない状況でただ文字列で相対パスがある状態で
そこから絶対パスを出す方法はちょっとわからなかったです。。。
完全にpopupNodeに助けられました。すいません。
0 件のコメント:
コメントを投稿