У меня проблемы с Firefox и IE, в основном с Firefox, так как он автоматически декодирует параметр в хэше, прежде чем я могу работать с ним в Javascript. IE не декодирует URL автоматически, поэтому я не получаю ошибок при чтении.
Моя проблема похожа на эту, за исключением того, что я не использую ASP.NET ASP.NET MVC, автоматически декодирующий JSON-кодированные параметры из AJAX
Так что, если я возьму URL, как example.com/#question=!%40%23%24%25^%26*(
, тогда как "!% 40% 23% 24% 25 ^% 26 * (" был закодирован с использованием encodeURIComponent, в IE при обращении к хешу он будет оставлен как "!% 40% 23% 24% 25 ^% 26 * (", однако в Firefox, когда я обращаюсь к хешу, он автоматически декодируется в"! @ # $% ^ & * ("
Проблема в том, что в моем скрипте я использую decodeURIComponent для декодирования закодированного значения, что хорошо, если строка действительно закодирована. Поскольку он уже декодирован в Firefox, он дает мне неверную ошибку последовательности URI, а IE вообще не дает никаких ошибок.
Как я могу это исправить?