如何通过单击父窗口上的按钮在子窗口出现时禁用父窗口

时间:2012-02-21 10:41:19

标签: javascript

我在jsp中设计了一个窗口,其中有一个搜索按钮。当用户点击“搜索”按钮时,会出现新窗口。但是此时我希望我的父窗口被禁用,这样当用户尝试在父窗口上做任何事情时,它应该不允许,直到“搜索”表单关闭。

如果有人知道该怎么做,请告诉我。

我已经尝试过此解决方案Javascript to open popup window and disable parent window,但此解决方案无法禁用父页面上的链接。 我不打算使用showmodaldialog。 或者有人可以用一个例子向我解释showdialog()的使用 谢谢, 勒凯什

3 个答案:

答案 0 :(得分:5)

function openSearchPopUp() { 
  popupWindow= window.open(url,'window','width=800,
                           height=600,location=yes,
                           menubar=‌​yes,scrollbars=yes,
                           resizable=yes'); 
  popupWindow.focus(); 
  document.onmousedown = focusPopup; 
  document.onkeyup = focusPopup; 
  document.onmousemove = focusPopup; 
} 

function focusPopup() {
  if(popupWindow && !popupWindow.closed) { popupWindow.focus(); } 
} 

答案 1 :(得分:2)

我呈现模态窗口的方式是我创建一个覆盖整个文档的DIV,具有高Z-index,然后我阻止了点击事件的传播。在jQuery中,我会这样做:

// When popup window is open:
var $cover = $('<div>');
$cover.css({
  height: $(document).height(),
  width: $(document).width(),
  margin: 0,
  padding: 0,
  background: 'black',
  opacity: 0.5
});
$cover.click(function(e) {
   e.stopPropagation();
   return false;
});
$cover.appendTo(document);

编辑:这是我使用纯JS做的快速和肮脏的事情。我相信它可以得到改进,以获得更好的跨浏览器支持。

http://jsfiddle.net/wVNbx/1/

答案 2 :(得分:1)

您可以使用 Greybox 。请访问以下链接:http://orangoo.com/labs/GreyBox/

希望这足以满足您的要求。