我有一个页面,从两个不同的区域打开弹出窗口。在第一个区域,它作为彩色框弹出窗口打开。从第二个开始,它在另一个简单的javascript弹出窗口中打开。
该页面之前设计为彩色框弹出窗口。为页面设计的关闭按钮仅在打开为彩色框弹出窗口时才有效。
<a href="javascript:parent.$.colorbox.close();" class="btn" title="Close Window">Cancel</a>
问题是关闭按钮在另一个简单的弹出窗口中打开时不起作用。我通常使用以下代码行作为普通简单弹出窗口的关闭按钮。
<a class="btn" href="javascript:window.close();">Close</a>
当页面在anohter普通javascript弹出窗口中打开时可以正常工作,但是当弹出窗口作为彩色框弹出窗口打开时,这不起作用。
是否有任何脚本可以在两种情况下都有效?
我尝试使用以下代码通过vb.net关闭弹出窗口。
asp.net代码行
<asp:LinkButton runat="server" EnableViewState="false" ID="uxClose"
Text="Close Window via Asp" CssClass="btn" />
VB.net代码
Protected Sub uxClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles uxClose.Click
If Not Page.IsValid Then Exit Sub
Page.ClientScript.RegisterClientScriptBlock(Me.GetType(), "CloseWindowScript", "window.close();", True)
End Sub
不行。我也试过
Protected Sub uxClose_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles uxClose.Click
If Not Page.IsValid Then Exit Sub
Me.close()
End Sub
但是会出现错误消息
我将非常感谢您的合作
谢谢
答案 0 :(得分:1)
colorbox插件添加ID为cboxOverlay
的叠加层。为什么不检查它是否存在,如果有 - 打开彩盒,如果没有,那么你可以关闭其他类型的弹出窗口。
function isColorbox(){
return $('#cboxOverlay').length;
}
现在你可以这样做......
$('a.btn').on('click', function(){
if (isColorbox()){
$.colorbox.close();
} else {
// using your original code for non-colorboxes
window.close()
}
});