確定申告ページでも戻るボタン禁止
確定申告ページは、ロード遅いし、右クリック禁止、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年台のインターネットですか。