0

我有一个链接到资源的锚点,并在其上应用了颜色框。

如果目标 url 返回诸如“404 不可用”之类的 http 错误代码,是否可以使 Colorbox 不显示弹出窗口?

内向的

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

编辑

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

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

1 回答 1

1

根本问题是 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/

于 2012-07-27T09:55:50.517 回答