Лидеры рейтинга

ID: 401284

Михаил Александров

Советник

376

Россия, Санкт-Петербург


ID: 259041

Алексеев Владимир Николаевич

Мастер-Эксперт

357

Россия, пос. Теплоозёрск, ЕАО


ID: 401888

puporev

Профессор

215

Россия, Пермский край


ID: 405338

vovaromanov.jr

1-й класс

125


ID: 400669

epimkin

Профессионал

111


ID: 242862

Hunter7007

Мастер-Эксперт

29

Россия, Омск


ID: 137394

Megaloman

Мастер-Эксперт

25

Беларусь, Гомель


8.10.2

13.10.2021

JS: 2.10.2
CSS: 4.6.0
jQuery: 3.6.0
DataForLocalStorage: 2021-10-20 22:46:01-standard


Создание программ на языках HTML, DHTML, XML и каскадные таблицы стилей CSS.

Администратор раздела: Коцюрбенко Алексей Владимирович (Старший модератор)

Консультация онлайн # 160329

Раздел: HTML / DHTML / XML / CSS
Автор вопроса: Дмитрий Сташенко
Дата: 12.02.2009, 20:56 Консультация закрыта
Поступило ответов: 1

Добрые сутки, уважаемые эксперты! Подскажите, почему код в приложении работает в ИЕ, но не работает в Опере? Т.е. почему Опера не отрабатывает location.replace?

Приложение:

Ответ # 243527 от Товарищ Бородин
Здравствуйте, Дмитрий Сташенко!
Коллега, данная неприятность устраняется, если чуть-чуть модифицировать Ваш код. Вместо document.location.replace(where) лучше написать document.location.href = where. Такой код не зависит от браузера, насколько я знаю, и работает везде. Я проверял Ваш способ по книжке, но про работу метода в Opera там ничего нет, к сожалению.
Еще совет - проверьте, нет ли в Вашем коде каких-либо синтаксических ошибок ВЫШЕ того места, где запускается replace. И вообще, убедитесь в том, что не работает именно replace, а не остальной код, следующий за ним в скрипте.

С уважением, Товарищ Бородин

Товарищ Бородин

Посетитель
13.02.2009, 08:14
Мини-форум консультации # 160329
Dmitry Stashenko

1

= общий =    13.02.2009, 12:25

Товарищ Бородин, так вроде ошибок искать и негде. Вот текст целиком:

<HEAD>
<script language=JavaScript>
function goTo(where) {
window.location.replace(where);
return false;
}
</script>
</HEAD>
<BODY>
<a href=#aaa onClick="return goTo('#aaa')">AAA</a>
<a href=#bbb onClick="return goTo('#bbb')">BBB</a>
</BODY>

по location.href будет просто переход по ссылке с занесением в историю, а интересен именно replace(), так как в историю не надо добавлять якорь.
может, я неправильно выразился? Replace() работает, но неверно, т.е. переход к якорю есть, но и история добавляется, а не замещается.
Причем, проблема оказалась довольно обширнее, чем на первый взгляд. Суть в следующем: не зависимо от того, есть ли якоря на странице, ни Опера, ни Сафари не заменили историю, ИЕ заменил историю только если якорей, на которые ссылаются ссылки (простите за тавтологию), нет на странице, а если есть, то он тоже добавляет ее, а не замещает. И только стойкий ФФ отработал Replace() верно и если есть якоря, и если их нет.

Товарищ Бородин

2

= общий =    13.02.2009, 12:41

То есть, это действительно одно-единственное место, где присутствует Javascript-код? Я ведь говорю не про ошибки в функции, а про ошибки вообще...
А что Вы видите, когда пытаетесь пройти по якорям? И еще - это у Вас где-нибудь в интернете на сервере есть или на локале пока что? Попробуйте активировать консоль ошибок в Oper`е, может быть, если есть какой-то неизвестный браузеру вызов или ошибка(с его точки зрения), то он укажет в это место...

Dmitry Stashenko

3

= общий =    13.02.2009, 12:49

Это текст целиком. Отредактировал пост выше, проблема шире, как обычно :)
Говоря о наличии якорей, имею ввиду, что перед </BODY> добавляю еще
<A name=aaa>aaa</A>
<A name=bbb>bbb</A>

Dmitry Stashenko

4

= общий =    13.02.2009, 12:55

Причем если нет якорей, ИЕ не добавляет историю даже если использовать location.href = where, а не replace()

Товарищ Бородин

5

= общий =    13.02.2009, 13:14

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

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Лучшие эксперты раздела

Алексеев Владимир Николаевич

Мастер-Эксперт

Рейтинг: 357

Зенченко Константин Николаевич

Старший модератор

Рейтинг: 164

Коцюрбенко Алексей Владимирович

Старший модератор

Рейтинг: 47

solowey

Академик

Рейтинг: 3

Асмик Гаряка

Советник

Рейтинг: 0

Valery N

Мастер-Эксперт

Рейтинг: 0