Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Не выводится картинка в IE


Автор: lockout 25.11.2010, 11:25
Делаю капчу. По ссылке "Обновить картинку" в IE старая исчезает, новая не отображается. Если кликнуть правой кнопкой там, где она должна быть, появляется пункт Показать изображение и, после клика на нем, картинка появляется. В FF и Опера - все нормально. События onload в IE не происходит.
Код

<img onload="//alert('Zagruz');" alt="" id="cim" src="../tcaptcha/?<?php echo session_name()?>=<?php echo session_id()?>" />
<a href="javascript:void(0);" onclick="kimg=document.getElementById('cim');kimg.src='../tcaptcha/?cim=' + Math.random();">Обновить картинку</a>

Если после смены src в коде onclick поставить alert("Что нибудь"), то onload происходит и картинка появляется. (Еще до клика ОК в alert'е).

Автор: cia 25.11.2010, 13:44
Не сталкивался с таким. Может попробовать обновлять не src, а полностью перезаписывать рисунок (innerHTML блока) ?

Автор: lockout 25.11.2010, 14:48
Цитата(cia @ 25.11.2010,  13:44)
Не сталкивался с таким. Может попробовать обновлять не src, а полностью перезаписывать рисунок (innerHTML блока) ?

Это типа завернуть img в div и сделать по onclick div.innerHTML=div.innerHTML ?

Анализ проблемы выявил, что в IE (уточню IE6) после смены src картинки запрос на сервер не отправляется. Отправляется либо по "Показать рисунок", либо alert в onclick. Может еще какие простые методы есть дернуть сервер, не городя request'ы?
Сам рисунок генерируется php-скриптом, возвращает Content-type: image. Параметр для генерации не важен, при любом обращении формируется новая картинка. Т.е. в src меняется часть url, содержащая параметр. 
Если в href вместо void(0) поставить #,  работает. Только страница передергивается, что мне не нравится.

Автор: cia 25.11.2010, 15:04
Цитата(lockout @  25.11.2010,  14:48 Найти цитируемый пост)
Это типа завернуть img в div и сделать по onclick div.innerHTML=div.innerHTML ?

По нажатию на кнопку "обновить рисунок" не заменять src рисунка, а для блока, его содержащего, написать: div.innerHTML="<img src=... />"

Автор: lockout 25.11.2010, 16:18
Попробовал сделать через innerHTML. Результат аналогичный. Даже немного похуже. В FF и Opera картиночка промаргивает. Т.е., если в первом варианте новая как бы накрывала старую, то в этом варианте старая исчезает, а потом появляется новая. В IE - старая картинка исчезает, новой нет, нет и запроса к серверу.

Автор: SelenIT 25.11.2010, 20:01
Не нравится мне этот href="javascript:void(0);" (с этим javascript-протоколом в IE вечно не одно так другое). Почему бы не сделать стандартно - href="#", а в конце онклика return false?

Автор: lockout 26.11.2010, 08:11
Цитата(SelenIT @ 25.11.2010,  20:01)
Не нравится мне этот href="javascript:void(0);" (с этим javascript-протоколом в IE вечно не одно так другое). Почему бы не сделать стандартно - href="#", а в конце онклика return false?

То, что надо. Спасибо. Правда, в IE чуть дергается страничка в момент перерисовки, но это решаемо (или допустимо).

Автор: skunse 11.12.2010, 20:03
Стремлюсь создать вебстраницу (в формате index.html) с математическими формулами в тексте. 
На своем компе (установлена Vista) все хорошо, а после загрузки файла в корневую папку сайта, текст виден, формул нет. 

Моя мечта --- чтобы и на моем сайте мои  матем. тексты выглядели приблизительно как здесь: 
http://problems.ru/view_problem_details_new.php?id=98195&x=0&y=0

Вопрос от профана :  Какой пхп редактор способен решить (без вмешательства) мою проблему? 
Заранее благодарю!
 
P. S.   Моя статья большая и интересная, так что  с охотой прикреплю её к посту. 
(версия в формате .pdf)

Автор: FightInGlory 11.12.2010, 23:33
Вам не обойтись простой страницей, если конечно у вас нет желания каждую формулу верстать)
Есть редактор tinyMCE http://tinymce.moxiecode.com/examples/full.php вы сможете написать любую формулу, там даже есть специальные символы для формул. Но вам придет немного узнать о php. Напишите в соседний форум, вам там помогут.

Автор: skunse 12.12.2010, 11:45
FightInGlory  

Огромное спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)