だいぶ前に 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 41 |
|
追記: 2015/08/10
location.href
を使うと見出しからセクションに飛んだ時とかに
ハッシュ部分(#...
)が残ってしまって違うページとカウントされてしまうので、
1 2 |
|
と変更しました。
追記ここまで
基本、自分で作るスクリプトはsource/javascript/utils.js
に入れているのでこの中に。
これはsource/_includes/head.html
で<head>
ブロックの最後で読み込んでいます。
また、これを使うためにはjQueryを読み込む必要があります。
1 2 3 4 5 6 7 8 |
|
上のスクリプトの中のkey
を自分のものを入れて、
後は
from_email
: 送り主メアド。メアドの形をしてれば([email protected]
)なんでも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でなくてもどんなとこでも使えるものなので 一度やってみると面白いと思います。
実際結構コピーされてて面白いです。 ただのミスっぽい良くわからないところのコピーも多いですが
追記: 2014/12/30
だれかが この設定を使って Mandrillを使ってJavaScriptだけでメールを送る の方のポスト上で
「こ」「ン」「に」「ち」「は」
と送ってくれました。
追記ここまで