2012-03-05 9 views
0

何をしているのですか: Fancybox 'href'パラメータで使用するためにurlを解析中に、iFrameからFancyboxを呼び出すと、iFrameではなく親に追加されます。jQuery + Fancybox HREFパラメータがリフレッシュ/キャッシュされない

問題:これはユーザー画像のアップロードフォームに使用されています。最初のアップロードでは望ましい結果が得られます。 fancyboxポップアップ画像。その後の試行では、Fancyboxは、キャッシングしているかのように、最初のイメージにリンクされます。 URLが最後のイメージを上書きするたびに実際に変更されることはありませんが、イメージは変更されます。
ページをリフレッシュすると、このサイクルが再び開始されます。リンクを右クリックして新しいウィンドウ/タブで開くと、新しいイメージが表示され、そのイメージのfancyboxも更新されます。

コード:これは、ユーザーがイメージを正常にアップロードした後、PHPによって出力されるコードです。そのイメージへのリンクを作成するためです。

echo "<p>" . '<a id="image-preview" href="/images/uploads/' . preg_replace("/[^A-Za-z0-9_]+/", "", $result[0]['Klarents_Model_Project']['project_name']) . '/' . 
         preg_replace("/[^A-Za-z0-9_]+/", "", $result[0]['Klarents_Model_Company']['company_company_name']) . '_' . 
         (($this->getRequest()->getParam('filename') !== "") ? 
          $this->getRequest()->getParam('filename') : $result[0]['Klarents_Model_Company']['company_id']) . 
         "." . $ext . '" onclick="event.preventDefault();parent.fbuPreview($(this).attr(\'href\'));">Image preview' . "</a></p>";` 

これは親ページにあります。

function fbuPreview(url){ 
    $.fancybox({ 
     'href' : url 
    }); 
} 


よろしく、

答えて

3

あなたが好きな画像にPARAMを追加する必要があります。これは、別のURLを持っているし、以前のイメージとしては、結果が得られません

/images/uploads/something/customer/uploadedfilename.jpg?date=20120305122713 

。 Javascriptでキャッシュをクリアすることはできませんが、時間であるparamを追加することはできません。ブラウザに強制的に新しい画像をロードします。

現在、ブラウザはIMG URLをキャッシュしています。そして、それが同じであれば、彼はあなたがページをリフレッシュするまで常にキャッシュからそれを取り出すでしょう。

私はこの問題を数回持ちましたが、唯一の回避策はパラメータを追加することです。

+0

ラブリー!はい、これは問題を解決しました - ありがとう:) – mr12086

関連する問題