アメブロの画像を保存出来るようにするブックマークレット | ほな行こか。

ほな行こか。

さてどこ行こか・・・

・柊木りおさんの応援♪
・いとくとらさんの応援♪
・新しいデジモノを物色
・未だ見ぬ、いや食べぬ、バウムクーヘンを求めて

さぁ今日はどっち?

アメブロって画像を右クリックで保存出来ないように小細工されてますよね。もちろん完璧にガードなんて出来ないから、やり方はいくらでもある。ソースを見て調べたり、ブラウザのJavaScriptをオフにしたりとか・・・
まぁでもめんどい。

世の中には同じこと考える人はいっぱいいるわけで、各種ツールやらブックマークレットを作って公開してる人がいます。このために何かしらソフトをインストールするのも面倒だからブックマークレットで十分なんやけど、アメブロの仕様変更に追いついてないのか使えるブックマークレットがすぐに見つからなかった。
これぐらい自分で作った方が早い・・・ちゅーわけで作ってみた。

単純に右クリック制御を外すだけならこれだけでいい。

javascript:(
  function(){
    var imgs=document.getElementsByTagName('img');
    for(i=0;i<imgs.length;i++){
      imgs[i].oncontextmenu=function(){return true;};
    }
  }
)();

しかし、たまにサムネイル(縮小版)を貼ってる場合があるよね。
例えばこんな感じに。
もちろんオリジナルサイズの画像を保存したいわけよ。

ちゅーわけで、サムネイルで貼られた画像をオリジナル画像に差替える処理を追加した。でもそのまま差替えただけじゃ、はみ出てデザインが崩れちゃうんで、見た目の横幅をブログに合わせるようにしてみた。親要素がアンカーかどうかチェックしてるのは、絵文字とかアイコンに画像使ってる部分もあるから、それを除外するため。


javascript:(
  function(){
    var imgs=document.getElementsByTagName('img');
    for(i=0;i<imgs.length;i++){
      imgs[i].oncontextmenu=function(){return true;};
      if(imgs[i].parentNode.tagName.toLowerCase()=='a'){
        if(imgs[i].src.match(/(http:\/\/stat\.ameba\.jp\/user_images\/.+\/)t[0-9]+?_(.+)/i)){
          imgs[i].src=RegExp.$1 + 'o' + RegExp.$2;
          imgs[i].style.width='100%';
        }
      }
    }
  }
)();

とまぁせっかく作ったから公開してみたよ。
しかし、アメブロで、アメブロにケンカ売るような記事書くとか俺はアホか♪

WindowsのChromeでしか確認してないし、他のブラウザで検証する気もないw

■アメブロの画像を普通に右クリックで保存するブックマークレット
※アメブロの制限で簡単に登録するためのリンクが貼れないので、ちと面倒ですが、下のダミーリンクをブックマークバーにドラッグして登録してから、それを編集してURLの項目に下の枠の中の文字列をコピペして保存してください。

アメブロ画像保存
javascript:(function(){var imgs=document.getElementsByTagName('img');for(i=0;i<imgs.length;i++){imgs[i].oncontextmenu=function(){return true;};if(imgs[i].parentNode.tagName.toLowerCase()=='a'){if(imgs[i].src.match(/(http:\/\/stat\.ameba\.jp\/user_images\/.+\/)t[0-9]+?_(.+)/i)){imgs[i].src=RegExp.$1 + 'o' + RegExp.$2;imgs[i].style.width='100%25';}}}})();

ご利用は計画的に。

2014/01/14
MacのSafariで動かないことに気づいて修正。