練炭ブログ

萌え壁紙、Irvine、DMonkey、Proxomitron などの情報を扱ってます。

Proxomitron: Kill mouse/keyboard snatcher tweak

コメントなし»

日本経済新聞の右クリック禁止が防げなかったで、日本経済新聞のために作ったフィルタ。汎用だけど他で役立つことはまずないと思います。

Name = "Kill mouse/keyboard snatcher tweak  (2010-04-07; rentan)"
Active = TRUE
Multi = TRUE
URL = "$TYPE(htm)"
Limit = 4096
Match = "(<body(\s[^]+|)>)\0$STOP()"
Replace = "\0<script type=text/javascript>"
          "document.body.attachEvent ("oncontextmenu", function () { return event.returnValue = true; });"
          "</script>"

<body> にマッチさせるのは避けたいけど、最速で attachEvent する必要がある(最後に event.returnValue = true を実行させる)のと、<body> が出てくるまで document.body が存在しないという理由で仕方なく。

Proxomitron: Kill mouse/keyboard snatcher type-Ex

コメントなし»

日本経済新聞の右クリック禁止が防げなかったで触れた、今まで使っていた右クリック禁止を無効化するフィルタ。

この機会にちょっと手直ししてます。
ほとんどの右クリック禁止を無効化できるはずです。

Name = "Kill mouse/keyboard snatcher type-Ex  (2010-04-07; rentan)"
Active = FALSE
URL = "$TYPE(htm)"
Limit = 4096
Match = "(^(^<[^%1b>]+>)|"
        "</+(!--(^\[|[^<>]+<)|\?xml|!doctype|html|head|title|meta|link|base|((^</+title)?)+</title>)"
        "|"
        "(</+[^<>"']+>[^<>"']+)+{1,*}"[^<>"']+>"
        ")$STOP()"
Replace = "<script type="text/javascript">\n"
          "(function () {\n"
          "var f = function () { return true; };\n"
          "var e = ["contextmenu", "selectstart", "dragstart", "mousedown", "mouseup", "mouseclick", "dblclick", "keydown", "keypress"];\n"
          "for (var k in e) { document.attachEvent ("on" + e [k], f); }\n"
          "}) ();\n"
          "</script>\n"

日本経済新聞の右クリック禁止が防げなかった

コメントなし»

日本経済新聞

いまどき右クリック禁止するなんてテラワロスw
しかし長年使っていた、右クリック禁止を無効化する Proxomitron 用自作フィルタが効かなくてショック。

document.body.oncontextmenu で returnValue = false と cancelBubble = true を(jQuery 経由で)セットされていたからだった。これはちと対処が面倒。
思想は古いが、jQuery を使っている点は新しい。

問題のコードは http://cdn.nikkei.co.jp/parts/ds/script/nikkei.min.js にあるけど、圧縮前のファイルが http://cdn.nikkei.co.jp/parts/ds/script/nikkei.js にあったので助かった。_nk.prototype.setNoCopy のところね。

ブラウザで対処した方がスマートだけど、IEコンポーネントのブラウザを使っているので無理。ということでフィルタを作ってみた。