用于关闭按钮的脚本,它将同时用于asp.net和vb.net应用程序中的colorbox弹出窗口和普通弹出窗口

时间:2014-11-05 12:13:16

标签: jquery asp.net vb.net popup colorbox

我有一个页面,从两个不同的区域打开弹出窗口。在第一个区域,它作为彩色框弹出窗口打开。从第二个开始,它在另一个简单的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

但是会出现错误消息

我将非常感谢您的合作

谢谢

1 个答案:

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