だいぶ前に WordPress:誰かが記事をコピーしたら教えてくれるプラグインCCC(Check Copy Contents)を作ってみた。 着ぐるみ追い剥ぎペンギン というのを見て、これ面白そうだな、と思ってたんですが、 このブログはOctopress+GitHub Pagesで出来ていて 結果をメールで送ったりするの無理かな?と思ってました。
が、 MandrillをつかてJavaScriptだけでメールを送る で書いたように、 Mandrill というサービスを使うとそれが簡単に解決できたので GitHub Pagesにある様な静的なサイトでもJavaScriptだけで コピペを知らせられるようにしてみました。
Mandrillの準備
Mandrill でサインアップしてAPIのキーを取ってきます。
JavaScript
以下の様なJavaScriptを用意します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | |
基本、自分で作るスクリプトはsource/javascript/utils.jsに入れているのでこの中に。
これはsource/_includes/head.htmlで<head>ブロックの最後で読み込んでいます。
また、これを使うためにはjQueryを読み込む必要があります。
1 2 3 4 5 6 7 8 | |
上のスクリプトの中のkeyを自分のものを入れて、
後は
from_email: 送り主メアド。メアドの形をしてれば(~@XXX.YYY)なんでもOK。email: メールの送り先。name: 送り先人の名前。
を適宜自分用に設定してあげるだけです。
これで、copyイベントが起こった時にこの関数が呼ばれるので、
Ctrl-C(Cmd-C)でも右クリックからのコピーでも呼ばれます。
コピー時に選択している部分をwindow.getSelection()で取ってきて
渡してますが、document.selectionの部分は古いIE用です。
getselection - How to get selected html text with javascript? - Stack Overflow
API Keyを公開することになるのでどうなの、と言う話もありますが、 取り敢えずこれに使うためだけに登録したものなので 余程の事がない限りは問題ないかな、と。
まとめ
という感じで、思ったよりも簡単に出来ました。
特にOctopressでなくてもどんなとこでも使えるものなので 一度やってみると面白いと思います。
実際結構コピーされてて面白いです。
ただのミスっぽい良くわからないところのコピーも多いですが
Notice a copy event on your blog by email only by JavaScript (In English)