1
  • I have a parent window named worklist.jsp
  • Parent window has a button. on click of the button, it calls a function named getEventLogUser().
  • getEventLogUser() function in turns calls a function named popupWindowWithPost() which opens the child window. both the function is in separate js file(utility.js)..
  • My need is, i have to disable the parent window when child is opened.

worklist.jsp:

<div class="claro" id="menuDiv21" onclick="setWidgetproperty(this.id,'x','navMenu21');" onmousedown="setMenuBarProperty('navMenu21');" onmouseup="setDocStyle(this.id)" style="border:1px dotted white; left: auto; position: absolute; top: 620px;">
     <div dojotype="dijit.MenuBar" id="navMenu21" style="font-size:11pt;" title="MenuBar">
          <div dojotype="dijit.MenuBarItem" id="SearchMenu21" onclick="getEventLogUser();setMenuId(this.id);" style="font-size:11pt;" title="menuBarItem">
               <img class="images" id="SearchMenu21" name="search5.png" onclick="setImgProperty(this.id)" src="images/uploads/search.png" style="height:20px; width:20px;">
               Search
          </div>
</div>
</div>

utility.js:

function getEventLogUser(){
        var dummyvar = document.getElementById("CWPROCESSEVENTLOG.OBJECT_ID").value;
        popupWindowWithPost("eventLogUser.jsp",'height=600px,width=960px,top=50px,left=150px,scrollbars=no,sizable=yes,toolbar=no,statusbar=no','processManager',dummyvar);
}
function popupWindowWithPost(url, windowoption, name, params)
{
         var form = document.createElement("form");
         form.setAttribute("method", "post");
         form.setAttribute("action", url);
         form.setAttribute("target", name);
         var input = document.createElement('input');
         input.type = 'hidden';
         input.name = "PARAM";
         input.value = params;
         form.appendChild(input);
         document.body.appendChild(form);
         window.open(url, name, windowoption);
         form.submit();
         document.body.removeChild(form);
}
4

3 回答 3

2

禁用窗口的一种简单方法(假设您对 disable 的定义与我上面的评论相匹配)是简单地用不可见的 div 覆盖窗口并给它一个非常大的 z-index 以便如果您有任何其他带有 z- 的 dom 元素index > 1 它仍然会被那个不可见的 div 覆盖。

尝试避免诸如 window.showModalDialog() 之类的东西,它们是坏消息.. 如果我是你.. 除非绝对必要,否则我什至不会创建新窗口(老实说,我想不出一个单一的场景)。 . 我会使用 div 和 css 在同一个窗口中创建一个模式对话框.. 网上有大量的教程和库(即 twitter 引导程序)。

于 2013-02-15T05:09:04.587 回答
0

据我了解,您想打开模态对话框。签出window.showModalDialog()而不是window.open(). 请注意,它也有一些不同的参数......

而且,如果你想把它放在之前form.submit();,那么在模态窗口关闭之前它不会被执行。

于 2013-02-15T05:05:44.950 回答
0

查看用于创建模态 iframe的fancybox库。我已经在几个项目中使用了它,它可以满足您的要求;尽管在叠加层中,而不是在单独的窗口中。

于 2013-02-15T05:08:28.960 回答