我有一个链接到资源的锚点,我在上面应用了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.
答案 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/