Полезная информация

Список ответов на каверзные вопросы можно получить в FAQ-разделе форума.

№117-07-2009 14:32:20

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Картинка на тулбаре

Возникла проблема при попытке разместить на тулбаре динамическую картинку.
В XUL файле есть кнопка с допустим id="dinam"
В CSS файле прописана картинка для этого id.
Так это в статике.
А нужно чтоб в записимости от переменной была разная картинка.
Но если в js-файле делать getElementById ("dinam");, то врядли мы сможем потом использовать setAttribute ("id", dinam2); (пробовал, не работает).
В CSS, думаю, нельзя прикрутить JS файл и использовать типа
#dinam {
    list-style-image: url(НАША_ПЕРЕМЕННАЯ);

Как найти выход из данной проблемы?
Или можно как то использовать картинку в кнопке без id в label'e?

Отсутствует

 

№217-07-2009 15:58:46

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Картинка на тулбаре

css-правило можно сделать на любой атрибут.
#dinam[attr="state1"] { list-style-image: url(...); } /* без атрибутов */
#dinam[attr="state2"] { list-style-image: url(...); } /* с атрибутом attr */
и потом по ситуации ставить нужное значение атрибуту attr.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№317-07-2009 16:03:53

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Картинка на тулбаре

с этим разобрался

Отредактировано eXeLe (17-07-2009 16:18:57)

Отсутствует

 

№417-07-2009 16:17:01

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Картинка на тулбаре

setAttribute ("attr", "state1");
...
setAttribute ("attr", "state2");


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№517-07-2009 16:59:30

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Картинка на тулбаре

а такой вопрос, возможно как нить прикрутить refresh-функцию?
картинка просто - png файл генерируемый, и ее содержимое обновляется раз в несколько минут.
но в данный момент она грузится один раз и все, пока не переоткроешь браузер, она не обновится.
даже если с динамикой выбрать одну картинку, потом вторую и снова первую - первая при этом не обновится, а будет такой, какой она загрузилась в первый раз.
не знаю принципов работы CSS - грузит ли он "при запуске" все картинки и потом их использует или просто картинка кешируется и не обновляется... в любом случае хочется обновления картинки по нажатию кнопки

Выделить код

Код:

lbl. setAttribute ("attr", nonepic);
lbl. setAttribute ("attr", mypicture);

где nonepic - атрибут с пустой картинкой, mypicture - переменная, через которую ставится нужный атрибут - наша картинка
пытался этим сделать обновление картинки, в случае если переменная mypicture не меняет значения, но само собой не вышло, картинка (точнее все картинки от каждого атрибута) как загрузилась один раз, так и остается.

Отсутствует

 

№617-07-2009 17:06:26

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Картинка на тулбаре

Вот есть элемент image: https://developer.mozilla.org/en/XUL/image#a-validate
У него - атрибут validate

validate
    Type: one of the values below
    This attribute indicates whether to load the image from the cache or not. This would be useful if the images are stored remotely or you plan on swapping the image frequently. The following values are accepted, or leave out the attribute entirely for default handling:

    * always: The image is always checked to see whether it should be reloaded.
    * never: The image will be loaded from the cache if possible.

По-моему - то, что нужно.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№717-07-2009 17:20:14

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Картинка на тулбаре

ну это, как я понял, отдельный элемент, как кнопки и прочее и само по себе без нажатия (активации скрипта) обновляться оно не будет. validate="always" внутри кнопки тоже не проканало
или просто использовать данный элемент "внутри" кнопки?
щас пойду пробовать вообщем

Добавлено 17-07-2009 17:39:17
сделал через image, но либо не работает, либо в чем то ошибся
XUL:

Выделить код

Код:

<toolbarbutton id="OnLineButton" tooltiptext=""
                               label="" oncommand="OnLineScript()">               
                <image id="onlinel2on" src="" validate="always" />
                  </toolbarbutton>

JS:

Выделить код

Код:

var lbl2 = document. getElementById ("onlinel2on");
lbl2. setAttribute ("src", myimage);

где myimage - сгенерированная строка с УРЛом картинки
само по себе работает, как и через CSS и даже занимает меньше кода, но вот обновлять не обновлет - показывает один и тот же онлайн. между разными картинками (разные занчения переменной - разные картинки) переключается на ура, но не обновляет при этом.

Отредактировано eXeLe (17-07-2009 17:24:03)

Отсутствует

 

№817-07-2009 18:02:11

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Картинка на тулбаре

eXeLe пишет

но либо не работает, либо в чем то ошибся

У меня тоже не работает. Скорее всего, chrome xul кэшируется всегда.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№917-07-2009 18:05:15

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Картинка на тулбаре

а нет функций очищения кэша/удаления файла из кэша или например перезаписи файла в кэше?

Отсутствует

 

№1017-07-2009 19:50:28

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Картинка на тулбаре

Если картинка загружается по протоколу http - то есть, но в этом случае, я думаю, должен работать атрибут validate.
Если по протоколу file - не знаю. Картинку локального файла при его изменении можно попробовать загружать с помощью протокола data:


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№1117-07-2009 20:00:12

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Картинка на тулбаре

Anton пишет

Если по протоколу file - не знаю. Картинку локального файла при его изменении можно попробовать загружать с помощью протокола data:

Можно прибавлять к ссылке что-то вроде
"?" + new Date().getTime()
Или Gecko-специфичный Date.now(), выдающий то же самое.
Правда, это приведет к мусору в кэше.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№1218-07-2009 11:11:26

eXeLe
Участник
 
Группа: Members
Зарегистрирован: 01-07-2009
Сообщений: 29
UA: Firefox 3.0

Re: Картинка на тулбаре

Infocatcher пишет

Anton написал:Если по протоколу file - не знаю. Картинку локального файла при его изменении можно попробовать загружать с помощью протокола data:Можно прибавлять к ссылке что-то вроде"?" + new Date().getTime()Или Gecko-специфичный Date.now(), выдающий то же самое.Правда, это приведет к мусору в кэше.

сделал ссылку на картинку вида url + "?" + new Date().getTime()
обновляется успешно, спасибо =)

Отредактировано eXeLe (18-07-2009 11:25:22)

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]