Chrome: дисплей: встроенная странность ... - PullRequest
2 голосов
/ 02 сентября 2010

Я застрял на очень странной проблеме и не могу понять, что именно происходит ... К сожалению, я не могу дать ссылку на соответствующую страницу, так как она находится в стадии внутренней разработки, но проблема заключается в следующем:

У меня есть страница с 3 ссылками - A, B и C. Каждая из этих ссылок связана с динамически генерируемыми файлами, и создание этих файлов может занять несколько секунд. Поэтому мы размещаем функциональность для создания этих файлов на отдельных страницах. A, B и C запрашивают соответствующую страницу; Когда страница сгенерировала нужный файл, она отвечает именем файла, которое затем загружает пользователь. Пока все хорошо - все это работает.

Чтобы визуально обозначить активность, мы показываем / скрываем небольшой gif, когда эти операции запускаются / останавливаются. (A, B и C каждый имеет свою иконку). Они активируются через:

.getElementById().style.display = 'inline'; 

и отключен через:

.getElementById().style.display = 'none'; 

Это прекрасно работает для B и C, но не для A!

Я знаю, что он находит изображение для правильного включения (через оповещения () и что станет ясно через секунду), и я знаю, что стиль также установлен (по тем же причинам), но GIF просто не делает объявиться. Более того, это происходит ТОЛЬКО в Chrome - и Firefox, и IE показывают значок просто отлично. И более того - если я использую

.getElementById().style.display = 'block'; 

вместо

.getElementById().style.display = 'inline'; 

Chrome также показывает изображение! Я не хочу использовать блок, так как он перемещает gif к собственной строке, которая уродлива, но, по крайней мере, она показывает, что у меня правильное изображение и т. Д.

И, кроме того, если я не изменяю отображение с помощью JS, а вместо этого просто создаю gif с display: inline (вместо текущего display: none), он отлично отображается в Chrome. Все это заставляет меня думать, что проблема с JS + Chrome - но я не уверен. : /

Да, и немного лишней странности - если я нажму кнопку A, ничего не произойдет. Если я затем нажму B, то появится изображение A!

В общем, я понятия не имею, что происходит, но я надеюсь, что кто-то здесь может просветить меня!

Заранее спасибо!

РЕДАКТИРОВАТЬ: я поместил образец кода на http://jsbin.com/uzosu3/edit

1 Ответ

0 голосов
/ 02 сентября 2010

Если вы не хотите использовать блок, потому что он выталкивает изображение вниз по линии.

Попробуйте использовать

.getElementById().style.display = 'inline-block';

Возможно, стоит проверить это в браузерах IE.

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