私の現在のプロジェクトでは、ボタンのクリックで開くモーダル ダイアログを開いています。ユーザーがモーダル ダイアログの外側をクリックすると、ブラウザはクリックを無視し、モーダル ダイアログにフォーカスを当てる必要があります。これをどのように達成できますか?
4 に答える
モーダル ダイアログを表示するときに背景へのクリックを無効にする標準的な方法は、(半) 透明な div (背景画像付き) を作成し、それを使用してすべてのクリックを傍受することです。
ダイアログは、この透明な div の上に配置されます。
jQuery のようなフレームワークがこれを行うので、js を正しく設定することを心配する必要はありません。
jQuery modal dialogを見てください。
モーダルダイアログと関連するテクニックをチェックアウトします。ダイアログにjQueryUIを使用していると仮定すると、そのオプションが組み込まれています。そうでない場合は、その実装をチェックアウトできます。
依存関係のない単純な実装を次に示します:http: //raventools.com/blog/create-a-modal-dialog-using-css-and-javascript/
jqueryuiダイアログには、Modalという名前のプロパティがあります。trueに設定すると、ダイアログ Jquery UiDialogModalプロパティを除くすべてのコンテンツが無効になります。
または他の方法は
$("*:not('#dialog')").on("click",function(){
// do focusing on button or anything you want...
return false;
})
onblur と呼ばれるドキュメントまたはウィンドウのイベントがあります。基本的に、ユーザーが他のウィンドウをクリックした場合にウィンドウのフォーカスをポップアップに戻す機能を設定する必要があります。
擬似コードは次のようになります。
<script>
function bringBackFocus()
{
window.focus();
}
</script>
<body onBlur="bringBackFocus()">
</body>