0

JSPページで次のコードを使用して、ポップアップが開いているときに親ウィンドウを無効にしています

window.opener.document.body.disabled=true;
    document.onmousedown = focusPopup; 
    document.onkeyup = focusPopup; 
    document.onmousemove = focusPopup; 
function focusPopup() {
    window.focus(); 
  } 

初回のみ動作しますが、

ページが更新されるか、再送信が要求されると、すべてのコントロール、親ウィンドウのリンク タブが有効になり、使用/クリックできるようになります。

親ウィンドウが無効になっているように見えますが、実際には無効にはなりません。

私は何を間違っていますか?

4

1 に答える 1

0

ページが更新されると、HTML 全体が再度取得されます。JavaScript で行った変更はすべて失われます。このようなケースを処理するには、追加のロジックを追加する必要があります。この状況で使用できる、ここで説明されている「非表示のフォーム パラメータ」と「Cookie」を含むいくつかのアプローチがあります。

javacript で必要な変更は次のとおりです。

  1. ポップアップが開かれたときに非表示のフォーム フィールドまたは Cookie 値を設定します。
  2. 親ページの「オンロード」時に追加のロジックを追加して、値が設定されているかどうかを確認し、設定されている場合はコントロールを無効にします。

個人的には、Cookie ベースのアプローチはトリッキーになる可能性があるため、フォーム ベースのアプローチを好みます (ポップアップを閉じるときに Cookie の値をクリアする必要があります。そうしないと、次回フォームを開いたときにフォームが無効に見える可能性があります!)。

于 2013-07-22T05:24:20.230 に答える