素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

pre要素の前にダウンロード用のリンクをつける

// ==UserScript==
// @name           preGet
// @namespace      http://d.hatena.ne.jp/javascripter/
// @include        http*
// ==/UserScript==

function insertDownloadLink(doc){
  var pre = doc.getElementsByTagName('pre');
  Array.forEach(pre,
      function(pre){
      var a = document.createElement('a');
      a.href=toDataURI(pre.textContent);
      a.textContent = 'download';
      pre.parentNode.insertBefore(a,pre);
      });
}

insertDownloadLink(document.body);
'AutoPagerize' in window && window.AutoPagerize.addFilter(function(docs){
    docs.forEach(insertDownloadLink);
    });
function toDataURI(str, type)
  'data:' + (type || 'text') + ';base64,' + btoa(unescape(encodeURI(str)));

参考にしたもの:
文字列と UTF-8 バイト列の相互変換: Days on the Moon