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 回答