Через JS я пытаюсь установить атрибут src тега
.
Я устанавливаю URL-адрес файла, который находится на Amazon, но если в имени этого файла есть тильда, Amazon ожидает% 7E. IE меняет это на тильду, в то время как FF сохраняет его в качестве escape-кода. Итак, я говорю браузеру установить src, скажем, 'http://s3.amazon.com/bucket/file%7E1.png',, но в IE он удаляет его обратно в' http://s3.amazon.com/bucket/file~1.png'
Я понял, что он конвертирует его с помощью jQuery ('img') [index] .src. Это подтвердило, что IE изменял% 7E обратно на ~. Это нарушает мой код, потому что Amazon не ожидает, что файл будет запрошен таким образом.
Это происходит в IE 9 во всех трех режимах (режим IE7, режим IE8, режим IE9).
Я пробовал двойное экранирование (используя% 257E, так как% 25 - это код для%), но IE не меняет% 25 на%.
У кого-нибудь есть опыт работы с IE, когда вы меняете данные?
РЕДАКТИРОВАТЬ: я пытался использовать $ ('img') .attr (), но ошибка все еще происходит.
Вот простой способ показать мою проблему. Скопируйте это в файл HTML:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<img src="blank" />
Don't worry about the broken image
(возможно, придется указать IE разрешить межсайтовый JS-запрос)
Затем откройте консоль IE Javascript и запустите
$( 'img' )[0].src = 'http://s3.amazon.com/bucket/file%7E1.png';
Затем запустите
$( 'img' )[0].src
То, что я получаю, это "http://s3.amazon.com/bucket/file~1.png". IE по какой-то причине выполняет здесь некоторую постобработку, и я хочу обойти это так, чтобы src указал на правильное место.
Спасибо за помощь, ребята!
Еще одно редактирование.
Еще немного контекста: я пытаюсь отобразить динамические файлы, загруженные пользователем на S3, поэтому изменение имени файла не вариант.