注:可能な解決策はFirefox 3.0のみで動作する必要があり、私のアプリはIEからのアクセスを許可していません!onClickイベントのJavascriptフォーカスを変更しますか?
<a href="#" onclick="show_lightbox();return false;">show lightbox</a>
私の問題をライトボックスが表示されたときに、フォーカスがリンクの上に残っていることである:=)
私は、クリックされたとき、ユーザーにライトボックスを表示するリンクを持っています。したがって、ユーザーが上下のキーを押すと、表示されるライトボックスではなく、メイン文書のスクロールが終了します。
私はこれは私が放火魔コンソールでそれを入力すると正常に動作しますが、私は最後にそれが含まれている場合は動作しません。このfunction focus_on_lightbox() {
document.getElementById('lightbox_content').focus();
}
のようなコードを使用してライトボックス要素にフォーカスを設定しようとした
onclickスニペットのonclickイベント内で実行されるコードからリンクを外すことはできないかのように見えますか?
- アップデート1 私は
<a href="#" onclick="show_lightbox();focus_on_lightbox();return false;">show lightbox</a>
前にこのような何かを試してみたと
function focus_on_lightbox() {
console.log('hihi');
console.log(document.activeElement);
document.getElementById('lightbox_content').focus();
console.log(document.activeElement);
}
出力を次のように私は、いくつかのデバッグ出力を追加するための機能を変更しました
hihi
<a onclick="closePopup();lightbox('apartment_detail','11619');focus_on_lightbox();return false;" href="#">
<a onclick="closePopup();lightbox('apartment_detail','11619');focus_on_lightbox();return false;" href="#">
私は何かをする前に焦点を当てていたのですが、焦点を変えようとした後でもまだリンクに残っていましたか?
わからない、何の運を、それが問題ありませんが、私は完全にAJAXの後にフォーカスを設定しようとした
new Ajax.Updater(lightbox_content_id, url, {asynchronous:true, evalScripts:true, onLoading:show_lightbox_loading(), onComplete:focus_on_lightbox() });
次のように私は、ライトボックスをロードするために、AJAXを使用するだけでなく、場合。
私には何が欠けていますか?
私はdocument.activeElementをチェックして成功した場合でない場合は、100ミリ秒待ってから再度試して見て、フォーカスを設定しようとすることで、以下の提案されたソリューションを機能させるためにしようとしてきました。私は次の関数を使用している場合、それは
function focus_on_lightbox() {
var seconds_waited = 0
pause(100);
var current_focus = document.activeElement
while (document.getElementById(lightbox_content_id) != current_focus && seconds_waited < 2000)
{
document.getElementById(lightbox_content_id).focus();
console.log(document.activeElement);
pause(100);
current_focus = document.activeElement
seconds_waited += 100;
}
}
に動作します、私はなステートメントにconsole.logをデバッグ放火犯を削除する場合は、機能は動作を停止します!なぜこれが事実だろうと私は考えていない?なぜ、ファイヤーブートコンソールに変数を出力することが気象のフォーカスが要素に移動したかどうかに影響しますか? console.logステートメントはフォーカスに影響しますか?おそらくコンソールのデバッグウィンドウにフォーカスを移すことによって?
もし私が元の投稿を編集していなかったら、これを言ったでしょう。 – Triptych
実際、それは私が試した最初の事の一つであり、うまくいきませんでした。元の質問を詳細で編集します。 – Janak