コード
https://language-and-engineering.hatenablog.jp/entry/20150716/UnlockCopyPasteForbiddenOnWebPage より
// HTML5ではないページもあるし,
// Arrayのイテレータがない場合もあるので
// 古典的な記法を使う。
// 入れ替えるイベントリスナ
var f = function(){ return true; };
// 書き換え対象のDOMイベント名
var evs = "beforecopy beforecut click contextmenu copy dragstart mousedown mouseup selectstart".split(" ");
// 書き換え対象のCSS属性名
var props = "userSelect MozUserSelect MsUserSelect WebkitUserSelect".split(" ");
// 1要素に対する書き換え操作
function replace_events( elem ){
// イベント
for( var i = 0; i < evs.length; i ++ ){
elem[ "on" + evs[i] ] = f();
}
// CSS属性
if(elem.style){
for( var i = 0; i < props.length; i ++ ){
elem.style[ props[i] ] = "";
}
}
}
// 全要素に対し
var elems = document.getElementsByTagName("*");
for(var i = 0; i < elems.length; i ++){
replace_events( elems[i] );
}
replace_events( document );
→devtoolのコンソールにペースト実行すれば動く
ブックマークレット化
-
ブックマーク追加
-
URL欄を書き換え
-
minifyする
-
先頭に
javascript:
をつける