2013-08-27 5 views
0

Я перенаправляю пользователя, используя window.location.href.Кодирование всего location.href string

Если я не переключить & в & присоединения параметров URL в строке, IE7 и IE8 жалуются (например, &reg превращается в зарегистрированный товарный знак символ).

Если я просто напишу & как &, мой современный Firefox 24.0 не обрабатывает параметры, потому что он просто читает их как прямые &.

Как я могу кодировать URL-адрес таким образом, чтобы оба браузера были счастливы? encodeURIComponent() просто разрушает все для всех.

window.location.href = '/ex/mypage.php?MemberID=' + memberID + '&reg=reg&rid=' + return_data + '&YearRegisteringFor=' + regYear; 
+0

Просто догадайтесь: вместо этого используйте 'window.location' – Izkata

+0

@lzkata Просто попробовал, это не помогло. –

+0

Вы пытались опубликовать URI, а не только путь? (т. е. http: //example.com/ex/mypage.php? ...) – Sebastian

ответ

1

Я бы просто отказался и использовал другое имя параметра url. Это известная ошибка в IE7/8, и единственное исправление заключается в использовании & вместо &, что, как вы можете видеть, заставляет его работать корректно в firefox 24.0.

Вы можете использовать обнаружение браузера или найти способ обнаружения поддержки для использования &reg=, однако это намного больше обслуживания, чем просто изменение имени параметра.

Смежные вопросы