Параметр jQuery + Fancybox HREF не обновляется / кэшируется - PullRequest
0 голосов
/ 05 марта 2012

Что я делаю: Попытка вызвать Fancybox из iFrame, который будет добавлен к родителю, а не в iFrame, при анализе URL для использования с параметром Fancybox 'href'.

Проблема: Это используется для формы загрузки изображения пользователя, первая загрузка дает желаемый результат; всплывающее окно с изображением. Последующие попытки приводят к тому, что 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
    }); 
}


С уважением,

1 Ответ

3 голосов
/ 05 марта 2012

Вы должны добавить параметр к изображению, как:

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

Он имеет другой URL и не даст результат, как на предыдущем изображении. Вы не можете очистить кеш с помощью Javascript, но добавив параметр, который является временем. Заставит браузер загрузить новое изображение.

В настоящее время браузер кэширует URL-адрес IMG. И если он будет таким же, он всегда будет извлекать его из кеша, пока вы не обновите страницу.

У меня была эта проблема пару раз, единственное решение - добавить параметр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...