éãã¦ããã¿ãå ¨é¨ã®ã¿ã¤ãã«ã¨URLãã¯ãªãããã¼ãã«ã³ãã¼ããuserChrome.jsã¹ã¯ãªãããCopy All URLsã
調ã¹ç©ããã¦ãã¦ãã¡ãã£ã¨æ°ã«ãªãwebãµã¤ããããã¤ãè¦ã¤ãã£ãæã«ãç´ æ©ããã®URLãã¡ã¢ããçºã®ã¹ã¯ãªããã§ãã
ç®ã®åã«ããããã¤ãã®ãµã¤ããã人ã«ã¡ã¼ã«ããããå¾ã§èªããã¨ã¡ãã£ã¨ã¡ã¢ãã¦ç½®ãããæãªã©ã«ã便å©ã§ãã
ä»éãã¦ããã¿ãä¸ã¤åã ããªããã¢ãã¬ã¹ãã¼ããã³ãã¼ãåºæ¥ã¾ãããhtmlã®ã¢ã³ã«ã¼ã¿ã°åãã¦ãããã¢ããªã³ãã¹ã¯ãªãããããã¾ãããè¤æ°ã®ã¿ããã¨ãªãã¨ãã¨ã¦ãé¢åã«ãªãã¾ãã
ãã¼ãã£ã³ã°ã®åã«ã¡ãã£ã¨ä¸èª¿ã¹ãã¦ããã¦ãåèãµã¤ããäºåã«ã¿ããªã«ã¡ã¼ã«ãã¦ãããããåãæ¥ãã§èª¿ã¹ããã®ã§ããã¯ãã¼ã¯ã«å ¥ããç¨ã§ã¯ãªãã®ã«ã¨ãã£ãæã«ãæ¯åç ©ããããæãã¦ããã®ã§ä½ã£ã¦ã¿ã¾ããã
ç¹å¾´
- userChrome.jsã¹ã¯ãªãã
- Firefox/2.0.0.18ã§åä½ç¢ºèª
- ä¸ã¤ã®ã¦ã£ã³ãã¦ã«ããå ¨ã¦ã®ã¿ãã®URLã¨ã¿ã¤ãã«ãã¯ãªãããã¼ãã«ã³ãã¼ããã
- ç°¡åãªãã³ãã¬ã¼ãã«ãªã£ã¦ããã®ã§ãã¹ã¯ãªãããç·¨éããã°htmlå½¢å¼ãFourm Codeå½¢å¼ã§ã®ã³ãã¼ãå¯è½ã
- 使ç¨å¯è½ãªå¤æ°
- %title%
- %url%
- 使ç¨å¯è½ãªå¤æ°
- userChrome.jsã¹ã¯ãªããã¯ãã¾ãä½ãæ
£ãã¦ãªãã®ã§ãå©ç¨ãããå ´åã¯èªå·±è²¬ä»»ã§ã
- ééã£ã¦ãã¨ãã¨ãã®ã¤ã£ãã¿æè¿ã§ãã
ä½¿ãæ¹
- ã¿ãã®ä¸ã§å³ã¯ãªãã¯
- ã³ã³ããã¹ãã¡ãã¥ã¼ã®ãCopy All URLsããã¯ãªãã¯
- [text] Copy All URLsï¼ããã¹ãå½¢å¼
- [html] Copy All URLsï¼htmlå½¢å¼
- ã¨ãã£ã¿ãªã©ã«ãã¼ã¹ã
CopyAllURLs.uc.js
ã¯ã¦ãªãã¤ã¢ãªã¼ã§ãã¡ã¤ã«ã®ã¢ãããã¼ãæ¹æ³ãåãããªãã£ãã®ã§ãã½ã¼ã¹ã³ã¼ãããã®ã¾ã¾è²¼ãä»ãã
// ==UserScript== // @name Copy All URLs // @namespace http://d.hatena.ne.jp/kanonji/ // @description copy all URLs on a window to your clipboard used from the context menu on a tab. // @include main // @author kanonji // @version 0.1.20081205 // @homepage http://d.hatena.ne.jp/kanonji/20081205/1228462464 // ==/UserScript== (function() { var templates = { 'html':{ 'header':'<html><head></head><body><dl>\n', 'body':'<dt>%title%</dt><dd><a href="%url%" target="_blank">%url%</a></dd>\n', 'footer':'</dl></body></html>' }, 'text':{ 'header':'', 'body':'%title%\n%url%\n\n', 'footer':'' } }; var htmlEscape = function(s) { s = s.replace(/&/g, "&"); s = s.replace(/>/g, ">"); s = s.replace(/</g, "<"); s = s.replace(/"/g, """); return s; }; var getTabs = function(){ var tabNodes = document.popupNode.parentNode.childNodes; var tabs = new Array; for (i=0;i<tabNodes.length;i++){ tabs.push({'title':tabNodes[i].label, 'url':gBrowser.getBrowserForTab(tabNodes[i]).contentWindow.location.href}); } return tabs; }; var formOutput = function(templateId, tabs){ var string = new String; var template = templates[templateId]; string += template.header; for(i=0;i<tabs.length;i++){ string += template.body.replace(/%title%/g, htmlEscape(tabs[i].title)).replace(/%url%/g, htmlEscape(tabs[i].url)); } return string += template.footer; } var putClipboard = function(string){ Cc["@mozilla.org/widget/clipboardhelper;1"] .getService(Ci.nsIClipboardHelper) .copyString(string); dump("[save tabs]"+"copied to Clipboard\n"); } var main = function(templateId){ var tabs = getTabs(); var output = formOutput(templateId, tabs); putClipboard(output); }; var menuitem1 = document.createElement("menuitem"); menuitem1.setAttribute("label", "[text] Copy All URLs"); menuitem1.addEventListener("command", function() { main('text'); }, false); var menuitem2 = document.createElement("menuitem"); menuitem2.setAttribute("label", "[html] Copy All URLs"); menuitem2.addEventListener("command", function() { main('html'); }, false); setTimeout(function() { gBrowser.mStrip.childNodes[1].appendChild(document.createElement("menuseparator")); gBrowser.mStrip.childNodes[1].appendChild(menuitem1); gBrowser.mStrip.childNodes[1].appendChild(menuitem2); }, 0); })();