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

3
我在jsp中设计了一个窗口,其中有一个搜索按钮。当用户点击“搜索”按钮时,会出现新窗口。但此时我希望我的父窗口被禁用,以便用户在关闭“搜索”表单之前无法在父窗口上执行任何操作。
如果有人知道如何做到这一点,请告诉我。
我已经尝试过这个解决方案Javascript to open popup window and disable parent window, 但是这个解决方案无法禁用父页面上的链接。而且我不想使用showmodaldialog。或者有人可以用示例说明showdialog()的用途。
谢谢, rakesh
3个回答

6
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(); } 
} 

它在IE 8.0中可以运行,但在Google Chrome中无法运行。 - Kishore Kumar

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/


我使用了这种方法,使用这个链接 http://www.aspsnippets.com/Articles/Modal-PopUp-using-JavaScript.aspx ,但它只能为父窗口的垂直一半着色。 - rcky
我已经在我正在开发的网站上实现了上述方法,它很有效。请访问https://herdhound.com/查看结果(单击右上角的“开始”按钮)。 - user234932
@rcky:对于纯客户端JS不是太熟悉,但如果我想到什么,我会告诉你的。 - user234932
我不知道JSP是如何工作的,但你应该在父窗口中添加一个脚本标签,将modalCover对象复制到其中,并在子窗口生成之前调用modalCover.create()方法。 - user234932
@foxbunny......谢谢你的帮助....我使用了其他方法,现在它正常工作.... - rcky
你应该更新问题并/或将解决方案添加到答案中,以便其他人在遇到相同问题时可以使用它。 ;) - user234932

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接