-->

2011-10-07

javascriptのfocus

Aタグで href="#xxx" で同一ページ内に移動する場合についでにフォーカスする。
フォーカスした部分に変化が無い場合やページをリロードする場合がブラウザによってはある。
setTimeoutには文字列より関数自体を渡した方が早いです。

例。

移動する
隙間(1000px)
移動先
移動先。戻る。

説明。
try{ ... }catch(e){} => tryの中身を実行してエラーの場合何も表示しない。少し遅くなる。
setTimeout(..., 170) => 移動の0.17秒後に関数を実行する。
function(){ ... }    => フォーカスを実行する部分。

ソース。
<hr /><a href="#javascript-focus-test-001" id="javascript-focus-test-002" onclick='javascript:try{(function(){setTimeout(function(){document.getElementById("javascript-focus-test-001").focus();},170);})();}catch(e){}'>移動する</a><div style="height: 1000px;">隙間(1000px)<br />移動先<br />↓</div><a href="#javascript-focus-test-002" id="javascript-focus-test-001" onclick='javascript:try{(function(){setTimeout(function(){document.getElementById("javascript-focus-test-002").focus();},170);})();}catch(e){}'>移動先。戻る。</a><hr />

0 件のコメント: