![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
Royan |
|
||||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 1 Всего: 15 |
Очень странное поведение наблюдаю в IE
Есть такой HTML код
Как нетрудно догадаться в файле "genimage.php" генерируется изображение. Причем каждый раз при обращении к "genimage.php" разное. Я решил сделать так, чтобы при нажатии на ссылку это изображение менялось вот как тут: http://recaptcha.net/learnmore.html Правда я пошел более простым путем и просто написал такую функцию:
Тут может плохо видно, но в общем при нажатии на некую кнопку по которой сменяется изображение происходит вызов reloadImage() внутри которого генерируется уникальный адрес изображения ("http://localhost/genimage.php?r=" + Math.random()). В общем этот метод работает в Firefox и Opera но не работает в IE в котором место изображения отображается белое пятно. При этом метод onload этого подгружаемого изображения (объекта Image) в IE ***не*** отрабатывает Подскажите, пожалуйста, как мне исправить этот глюк? Может это вовсе не javascript'овый вопрос а проблема с хедарами которые выбрасывает PHP? PS При перезагрузке страницы изображение всегда отображается во всех браузерах -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
||||
|
|||||
Astraller |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
Royan, ужас. Изучите хотя-бы основы! PHP вы полняется на сервере и только на сервере!! Нельзя вставлять куски php скриптов в JS код.
В первом случае достаточно написать:
Во втором же случае тоже не надо мудрить с php!
И наконец запомните JavaScript это НЕ Java! ![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
||||
|
|||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 1 Всего: 15 |
Astraller, Прошу прощения, я просто несколько модифицировал свой код перед отправкой вопроса на форум поэтому и получилось что в посте у меня нечто невразумительное. Тут только моя вина.
Дело в том что я изначально не сказал что код, который я привожу (в том числе и тот который я случайно пометил как Java) находится в PHP файле поэтому PHP вставки в JS код вполне себе легитимны. Посему ваши исправления это результат выполнения PHP кода. Однако вопрос остается. Для пущего убеждения я написал маленький тест в котором демонстрируется баг/фича Internet Explorer
Это сообщение отредактировал(а) Royan - 23.10.2007, 10:50 -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
pompei |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.9.2007 Репутация: 1 Всего: 6 |
А про кэширование думали?
--------------------
А всё оказывается гораздо проще: пассивные наноструктуры - активные наноструктуры - системы наносистем - молекулярные наносистемы - сингулярность! По пять лет на каждый этап. |
|||
|
||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
pompei, url'ы разные. Какое кеширование?
![]() PS Странно это. Я у себя на сайте подобным образом организовывал и все без проблем работает. ![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 1 Всего: 15 |
Astraller, Если все таким же образом то я как Станиславский тебе скажу "Не верю!" Ты можешь привести URL сайта или способ которым ты это это реализовал?
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
Royan, в личку. Покажу. Проект просто коммерческий.
![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Royan, попробовал Ваш пример. Результат было поставил меня в тупик своей нелогичностью: все срабатывало, при любых настройках кеширования... но только один раз: стоило почистить кеш и обновить страницу по Ctrl+F5 - все ломалось, по нажатию ссылки браузер не делал ничего, никакого запроса на сервер (смотрел плагином IeHttpHeaders). Обратил внимание, что ссылка подсвечивается как посещенная, подумал, что дело в этом, очистил history - не помогло. И тут обратил внимание на, мягко говоря, нестандартный адрес ссылки;). Стоило заменить адрес на более традиционную "решетку" - все заработало. С добавлением "return !1" в onclick в исходном варианте - тоже.
Загадочная все-таки это вещь - псевдопротокол "javascript:", непостижимый ни для одного стандарта. Невидимый переход браузера между невидимыми мирами... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 1 Всего: 15 |
SelenIT, Тебе абсолютно заслуженный плюс.
Замечу, однако, что если убрать атрибут href вообще, то все тоже будет работать... вот такие вот дела -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Это как раз, имхо, не удивительно: <a> без href - это просто строчный элемент (как <span>), не вызывающий никаких переходов. А вот "невидимый виртуальный переход" по javascript-ссылке - действительно загадка... -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Royan |
|
|||
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: 1 Всего: 15 |
То что я прочитал по этому поводу в совокупности можно описать так. Переход по псевдо протоколу javascript: ставит IE в состояние "ожидания адресации" (pending navigation). В этом состоянии он находится до тех пор пока не происходит его адресация (возможно тут имеет место просто поступление любых данных из JS) Так вот в этом состоянии различная функциональность перестает работать либо перестает работать как ей предписано. В частности как мы убедились перестает работать механизм подгрузки и отображения изображений. То есть это особое состояние в котором поведение браузера не определено.
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
SelenIT |
|
||||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Royan, спасибо, кажется, я тоже нашел:
В моем приблизительном переводе:
Имхо, логично. Корнфорд, все-таки, голова! Вот так объединенными усилиями мы действительно докопались до истины! ![]() -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
||||
|
|||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
SelenIT,
А как быть с Opera которая иногда обновляет страницу при переходепо href="#"?? И при этом естественно не выполняется onClick ![]() -------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
SelenIT |
|
|||
![]() баг форума ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3996 Регистрация: 17.10.2006 Где: Pale Blue Dot Репутация: 49 Всего: 401 |
Astraller,
Можно уточнить - какие версии, при каких настройках? Имхо, стандартно - onclick="doSomething();return!1" (или return doSomething() с return false в самой ф-ции - как удобнее). -------------------- Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму! |
|||
|
||||
Astraller |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 1.8.2007 Где: $Украина[Кры м]->Феодосия Репутация: 2 Всего: 5 |
SelenIT, ааа.... тьфу :( return то я изабыл. Сори. Беру свои слова в зад.
-------------------- A.S.T.R.A.L.L.E.R.: Artificial Synthetic Technician Responsible for Assassination, Logical Learning and Efficient Repair |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |