Кто пользуется winproxy.cz знает, что это очень удобная штука для кэширования вебстраниц, очень удобно ранее посещенное потом в оффлайне просматривать.

А если ты в онлайне и хочешь обновить из интернета кэшированную страницу, то для этого нужно просто нажать кнопочку релоад в браузере.

Проблема

В FF при нажатии "релоада" страница грузится все равно из кэша! то есть попросту не обновляется.

Я сначала грешил на винпрокси, но он не виноват.

Для сравнения на картинке видно, что IE обновляет страницу через винпрокси замечательно.

FFvsIE.gif

Помогите, не дайте грешной мысли что IE рулит поселиться в моей голове :)
в чем фича?

обновил на всякий пожарный шухер FF с 1.0.1 до 1.0.2 только что, такая же х-ня..

У FF есть справочная система, вызывается нажатием клавиши F1. Так вот, там написано, что для принудительного обновления (не из кэша) страницы надо использовать клавиши Ctrl+F5 или Ctrl+Shift+R.

Спасибо!

Однако это что получается...

В гуе, кнопочка "релоад" имеет ту же функцию что и кнопочка "перейти".
А нажатие ctrl+r, тоже самое что нажатие enter в адресной строке.

Таким образом получается, что хитровыдуманный выгибон авторов ФФ, с
фичей насчет Ctrl+F5 или Ctrl+Shift+R, имеет под собой столь глубокую
идеологическую основу, которую моему ограниченному разуму без
дополнительной помощи никак не понять.

из справки:
"Чтобы обновить текущую страницу или получить её последнюю версию,
нажмите кнопку "Обновить" или нажмите Ctrl+Shift+R."

Эксперимент проведенный мной показал, что это не так, функция кнопки
"Обновить" на самом деле = Ctrl+R, = кнопка "Перейти", или =
нажатие ентер в адресной строке.

что то эта фича сильно смахивает на багу

я хочу, чтобы нажатие кнопки "Обновить" мышом соответствовало нажатию
Ctrl+Shift+R, на клаве!!!
я требую, я буду жаловаться, милицию вызову :) :) :)

А еще можно так: нажимать на кнопку "Обновить текущую страницу" с прижатым Shift-ом

Вот решение, меняющее стандартное поведение кнопки "Обновить текущую страницу" на противоположное (т. е., с Shift-ом - будет обновлять из кэша, без Shift'а - напрямую).
Нужно создать файл, скажем, relbutton.xml следующего содержания:

Выделить код

Код:

<?xml version="1.0"?>

<bindings id="toolbarbuttonBindings"
    xmlns="http://www.mozilla.org/xbl"
    xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
    xmlns:xbl="http://www.mozilla.org/xbl">

    <binding id="relbutton" display="xul:button"
             extends="chrome://global/content/bindings/toolbarbutton.xml#toolbarbutton">
        <resources>
            <stylesheet src="chrome://global/skin/toolbarbutton.css"/>
        </resources>
    
        <content>
            <children includes="observes|template|menupopup|tooltip"/>
            <xul:image class="toolbarbutton-icon" xbl:inherits="validate,src=image,toolbarmode,buttonstyle"/>
            <xul:label class="toolbarbutton-text" crop="right" flex="1"
                       xbl:inherits="value=label,accesskey,crop,toolbarmode,buttonstyle"/>
            </content>
    
        <handlers>
            <handler event="click">
                <![CDATA[
                    if (event.shiftKey)
                        BrowserReload();
                    else
                        BrowserReloadSkipCache();
                ]]>
            </handler>
        </handlers>
    </binding>
    
</bindings>

и добавить в userChrome.css следующую строчку:

Выделить код

Код:

#reload-button { -moz-binding: url("file://h:/relb/relbutton.xml#relbutton"); }

где h:/relb/relbutton.xml - путь к созданному файлу (может быть любым, но желательно без кириллицы)
Для ленивых: http://forum.mozilla.ru/uploaded/relbutton.txt, надо только поменять расширение.