0

リソースにリンクするアンカーがあり、それにカラーボックスを適用します。

ターゲット URL が '404 not available' などの http エラー コードを返す場合、Colorbox がポップアップ ウィンドウを表示しないようにすることは可能ですか?

解釈した

同じターゲットを 2 回ロードする結果となる外部チェックを作成することは避けたいと思います。

編集

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 に答える