読者です 読者をやめる 読者になる 読者になる

某英語学習サイトのコピペ防止方法

某英語学習サイトの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.

css

.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%";
}

これで、めでたくコピペできるようになった。