如果目标网址不可用,Colorbox会停止弹出窗口

时间:2012-07-27 08:19:50

标签: jquery colorbox

我有一个链接到资源的锚点,我在上面应用了colorbox。

如果目标网址返回http错误代码(例如“404 not available”),是否可以使Colorbox不显示弹出窗口?

intreted

我想避免编写外部检查,导致两次加载相同的目标。

修改

我检查了API,但在渲染之前加载后没有回调:

onComplete  Callback that fires right after loaded content is displayed.
onCleanup   Callback that fires at the start of the close process.

1 个答案:

答案 0 :(得分:1)

基本问题是ColorBox在加载内容之前打开,因此colorbox本身不知道请求状态。

我担心在调用colorbox之前你所能做的就是Ajax HEAD请求,这应该非常快,然后缓存请求状态。

$('a').click(function(e) {
    e.preventDefault();
    var self = $(this);
    var href = self.attr('href');
    if(self.data('success') == 'success') {
        $.colorbox({href:href});
    } else if (self.data('success') == 'error') {
        return;
    } else {
        $.ajax({
            type: "HEAD",
            async: true,
            url: href,
            success: function(message,text,response){
                $.colorbox({href:href});
                self.data('success', 'success');
            },
            error: function() {
                self.data('success', 'error');
            }
        });
    }
});​

在这里进行测试:http://jsfiddle.net/JS9Sc/