На Главную

Спецсимволы в IE

July 19th, 2007 by Yuriy Drozdov

Как Вы думаете, что будет в результате клика на одну из ссылок ниже?

Test Link 1
Test Link 2

HTML:
  1. <a href="http://blog.sribna.com/?action=add&reg_=1" title="test link 1" id="testlink1">Test Link 1</a>
  2. <a href="#" onclick="window.location='http://blog.sribna.com/?action=add&amp;reg_=1';return false;" title="test link 2" id="testlink2">Test Link 2</a>

Ответ: смотря в каком браузере :)

Firefox 2.0.0.4:
reg in firefox

Internet Explorer 6:
ie6 reg

Internet Explorer 7:
ie7 reg

Соответственно в IE6 и IE7 GET переменная reg_ не приходит.

Как лечится?

  1. Для первой ссылки лечиться простой заменой &reg_ на &amp;reg_
  2. Для второй ссылки, как видно из примера, простой заменой &reg_ на &amp;reg_ нельзя исправить ситуацию. Можно просто reg_ передать первым параметром.
  3. Или же просто не использовать это имя для параметра :) Этот вариант подходит для обоих случаев.

Автор: Yuriy Drozdov

Похожие статьи:

  • Нет похожих статей

RSS комментариев | Trackback URI

5 Комментариев

Comment by Dmitry Matyukhin
2007-07-19 14:40:11

Для второй ссылки нужно писать так:
/?action=add&amp;amp;reg_=1

Конечно, изврат :-)

Comment by y.drozdov
2007-07-19 16:00:01

Ох ё, до этого не додумался, обошелся перестановкой параметров :) Думаю так будет проще разбираться тому, кто будет потом смотреть мой код.

 
 
2007-07-19 18:46:51

Не советую action как параметр кстати использовать - если понадобится в js поменять этот параметр, который внутри input поле формы через document.forms[x].action=…

 
Comment by Дмитро
2007-08-05 00:23:22

Спасибо за подсказку

 
Comment by Sergey Kolchin
2007-09-28 23:27:48

Замена в href амперсанда на его ескейп-последовательность, кстати говоря, обязательна, если следовать стандартам.

 

Извините, комментарии закрыты.