某英語学習サイトのコピペ防止方法
某英語学習サイトのreading問題のページではコピペ対策がなされている。
それがどういうものか解説しようと思う。
コピーしようと、本文を選択しctrl + Cすると、コピー禁止と書かれたalertが出る。
これはhtmlが以下のようになっていることが原因であった。
<body bgcolor="#8BB67B" oncopy="alert('コピー禁止');return false;">
これはconsoleに、このscriptを打ち込むことで解消される。
document.body.oncopy = function () { return true; }
これでコピペできるようになったと思い、コピペしてみると、単語間にアルファべットが挿入されてしまう。
例えば、I am tkmru. は Iaambtkmru.というふうになってしまう。
これはhtmlとcssが以下のようになっていることによるものである。
html
I<span class='prevent'>a</span>am<span class='prevent'>b</span>tkmru.
.prevent{color:#D3E6D3; font-size:50%;}
これはconsoleに、このscriptを打ち込むことで解消される。
for (var i = 0; i < document.getElementsByClassName("prevent").length; i++){ document.getElementsByClassName("prevent")[i].innerHTML = " "; document.getElementsByClassName("prevent")[i].style.fontSize = "100%"; }
これで、めでたくコピペできるようになった。