2007年9月24日月曜日

URLリストに登録されていないサイトのJavaScriptを無効にするProxomitronフィルタ

動作内容は以下の通り。

  • script要素を削除 (後方にnoscript要素があれば、noscript要素を外して展開する)
  • a要素/href属性で指定されたjavascriptスキームを無効なスキーム「killjavascript」に置換
  • 要素埋め込み型のon****属性を無効な属性「killon****」に置換
[Patterns]
Name = "Disable JavaScript NoSafeList [2007/09/24] test2"
Active = TRUE
URL = "$TYPE(htm)(^$LST(JSEnable))"
Limit = 2048
Match = "$NEST(<script[ >],</script>)"
        "$SET(#=<script type='comment'> Disable JavaScript NoSafeList </script>)"
        "( $NEST(<noscript>,\0,</noscript>)"
        "$SET(#=\r\n<div class='view_noscript'>\0</div>)"
        "|)|"
        "(<a\s[^>]++href=)\#$AVQ((["']|)\#(javascript:*)\0)(^(^[ >]))"
        "$SET(#=kill\0)|"
        "(<[a-z]+{1,*}[0-9]+(^(^\s))[^>]++\s)\#(^(^on"
        "(abort|blur|change|click|dblclick|dragdrop|error|focus|key(down|press|up)|load|"
        "mouse(down|move|out|over|up)|move|reset|resize|select|submit|unload)=))"
        "$SET(#=kill)"
Replace = "\@"

今回は技術的な興味からフィルタを作成しましたが、JavaScriptの有効/無効はブラウザ側で制御した方が確実だと思います。
これ以外の方法でJavaScriptが使われたとしても、ブラウザがJavaScriptを許可しなければ無効となるので。

ラベル: ,

0 件のコメント:

コメントを投稿

登録 コメントの投稿 [Atom]

<< ホーム