userChrome.jsでウェブ魚拓を右クリックから使用する

Title :
userChrome.jsでウェブ魚拓を右クリックから使用する
Posted on :
2007-05-04
Author :
NKJG
Category :
Webメモ
Hatena Star :

本文

これは某SNSで公開していたもの。ついでなので持ってきました。

鳥獣保護区 | Firefox で開いているページを Safari で開くを参考にしています。

var Megalodonizer = {
mSchemes: ["file", "ftp", "http", "https"],
 
prefixMegalodon: 'http://megalodon.jp/?url=',
 
init: function() {
  this.mItem = document.createElement("menuitem");
  document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { Megalodonizer.onPopupShowing(this); }, false);
},
 
onPopupShowing: function(aPopup) {
  aPopup.insertBefore(this.mItem, document.getElementById("context-sep-" + ((gContextMenu.onLink)?"open":"stop")));
  if (gContextMenu.onLink) {
    this.mItem.setAttribute("oncommand", "Megalodonizer.showGyotaku(gContextMenu.linkURI);");
    this.mItem.setAttribute("label", "Show Gyotaku of link");
  } else {
    this.mItem.setAttribute("oncommand", "Megalodonizer.showGyotaku(gBrowser.currentURI);");
    this.mItem.setAttribute("label", "Show Gyotaku");
  }
  this.mItem.hidden = !gContextMenu.onLink && (gContextMenu.isTextSelected || gContextMenu.onImage || gContextMenu.onTextInput);
  this.mItem.setAttribute("disabled", this.mItem.hidden || !this.isSupported((gContextMenu.onLink)?gContextMenu.linkURI:gBrowser.currentURI));
},
 
isSupported: function(aURI) {
  return this.mSchemes.indexOf(aURI.scheme) > -1;
},
 
showGyotaku: function(aURI) {
  if (!this.isSupported(aURI)) {
    throw new Error("Megalodonizer : unsupported URI scheme '" + aURI.scheme + "'!");
  }
  gBrowser.loadOneTab(this.prefixMegalodon + encodeURI(aURI.spec).replace('&', '%26').replace('?', '%3F'), null, null, null, true, false);
}
}
Megalodonizer.init();