確定申告ページでも戻るボタン禁止
確定申告ページは、ロード遅いし、右クリック禁止、window.Alert使いまくりだわ、クソUIの典型みたいな感じだけど
唯一評価できる戻るボタン禁止の実装
戻るを押した時に、ページをそのままにするハックが用いられていた。
ゆうちょ銀行やじぶん銀行みたいに戻るボタン押した瞬間にログインしなおしとか、ああいう腐った戻るボタン禁止より幾分マシだった。
location.hash を用いたbackspace の制御
これは、初めて見た。URLにハッシュ値を与えておいて、onhashchangeでイベントをHookする感じ。
onunload が不安定なので、こっちを選んだのだろうけど、使う側として比較的安心して使える実装でした。
//location.hashを使用したbackspace制御 // IEでのアンカー対応用変数 var bsctrlOrg ; // onload時の実行関数 function location_setTimeOut() { setTimeout('location_change()',1); } // location.hashの初期化関数 function location_change() { // IEでのアンカー対応 bsctrlOrg = location.hash; location.hash = bsctrlOrg; // location.hashの初期化 location.hash = "#bsctrl"; } // onhashchange時の処理の設定 window.onhashchange = function() { if( location.hash != "#bsctrl" ) { // IEでのアンカー対応 if( bsctrlOrg != location.hash ) { bsctrlOrg = location.hash; } location.hash = bsctrlOrg ; // location.hashの再初期化 location.hash = "bsctrl" ; } }; // onload時の処理の追加 if( window.addEventListener ) { // IE9以降,FX,CH,SF用 window.addEventListener( 'load', location_setTimeOut, false ); } else if( window.attachEvent ) { // IE8以前用 window.attachEvent( 'onload', location_setTimeOut ); } else { // その他 window.onload = location_setTimeOut; }
ページがロードされたタイミングで onload に setTimout を仕込む、setTimeout で windows loacation を hash に移動させる、hash があるので unhashchangeが使える、戻るボタン押されたら、unhashchange で強制戻し。
なかなか憎めない実装でした。
この戻るボタン禁止なら、普及してもそんなに苦にならない。
それでも、右クリック禁止は許せない。ここは90年台のインターネットですか。