2

在我点击按钮的 jsp 中,我显示了一个使用 javascript 的弹出窗口。弹出内容使用另一个 3rd 方站点显示。弹出窗口有一个关闭按钮,在关闭弹出窗口时,我需要在 jsp 中隐藏或不显示该按钮。我该如何处理?

4

3 回答 3

1

如果您可以控制弹出窗口的关闭代码,请在弹出窗口中尝试以下操作:

window.opener.document.getElementById('myButton').style.visibility="hidden";

如果你无法控制打开窗口的关闭代码,有人想出了一个聪明的主意:

var win = window.open('http://www.google.com', 'google','width=800,height=600,status=0,toolbar=0');   
var timer = setInterval(function() {   
    if(win.closed) {  
        clearInterval(timer);  
        document.getElementById('myButton').style.visibility="hidden";
    }  
}, 1000);  

更新:对于 Internet Explorer,当从不同域加载页面到打开的窗口时,如果启用保护模式,它将返回 null 而不是对窗口的引用。看到这个小提琴

于 2012-06-05T14:43:49.833 回答
1

您可以使用$(selector).hide(); 隐藏元素,以下是在外部单击时关闭弹出窗口的方法:

此外,您可以使用纯 javascript 并且:

document.getElementById('elementId').style.visibility = 'hidden';

单击要隐藏的元素外部:

$(document).click(function (event) {

    if (event.target.className != 'elementToOpen' &&
      $(event.target).parents().index($('#popupWrap')) == -1) {

        if ($('#popupWrap').is(':visible')) {
            $('#popupWrap').hide();

            // .hide() will give selected element css(display:'none')
        }
    }

});
于 2012-06-05T14:20:09.157 回答
0

如果您也在使用 JQuery,您只需获取按钮的 id/class 并将以下内容添加到您的按钮调用的 js 函数中:

$("#yourID").hide();
$(".yourClass").hide();
于 2012-06-05T14:11:55.137 回答