Javascript仅在JSP页面上首次运行

时间:2013-07-22 04:35:38

标签: java javascript jsp

我在JSP页面中使用以下代码在弹出窗口打开时禁用父窗口

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

但它只适用于第一次,

当页面刷新或请求重新提交时,父窗口的所有控件,链接选项卡都会启用并可以使用/点击,

虽然它使父窗口显示为禁用,但它实际上不会禁用它。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

刷新页面时,将再次获取整个HTML。通过javascript完成的任何更改都将丢失。您将不得不添加其他逻辑来处理此类情况。有两种方法涉及“隐藏形式参数”和“Cookie”描述here,可以在这种情况下使用。

javacript所需的更改将是:

  1. 打开弹出窗口时设置隐藏的表单字段或Cookie值。
  2. 在父页面的“onload”上添加额外的逻辑以检查是否设置了值,如果是则禁用控件。
  3. 就我个人而言,我更喜欢基于表单的方法,因为基于cookie的方法可能会变得棘手(当弹出窗口关闭时,您需要清除cookie值,否则表单在下次打开时可能会显示为禁用!)。

相关问题