Я отлаживал любопытную проблему с путями к файлам в экземпляре IE, встроенном в мое приложение.
У меня есть следующий JavaScript / jQuery:
<script type="text/javascript">
function foobar(src) {
$("img").attr("src", src);
}
</script>
И мой DOM содержит один тег img
:
<img src="loading.jpg" />
У меня есть следующие три ссылки, которые вызывают foobar
при активации:
<a href="javascript:foobar('file:///C:/nospaces/someimage.bmp');">without spaces</a>
<a href="javascript:foobar('file:///C:/path spaces/someotherimage.bmp');">with spaces</a>
<a href="javascript:foobar('file:///C:/path%20spaces/someotherimage.bmp');">with spaces</a>
Все эти ссылки прекрасно работают в IE / FF / Chrome, но только первая ссылка работает в моем приложении, где я использую встроенный экземпляр IE.
Если я щелкну правой кнопкой мыши по изображению после нажатия второй ссылки (одна из двух не работает, третья дает точно такие же результаты), я вижу URL-адрес изображения:
file://C:\path%20spaces\someotherimage.bmp
, который не загружается, если я вставлю этот адрес в Пуск-> Выполнить.
Изменение адреса для добавления третьего /
после file:
, например:
file:///C:\path%20spaces\someotherimage.bmp
позволяет Пуск-> Выполнить, чтобы открыть изображение.
Интересно, что не встроенный IE сохраняет все 3 слеша (file:///
), поэтому все три ссылки работают.
Кто-нибудь сталкивался с такой проблемой? Есть идеи как это исправить?