我一直在調試嵌入在我的應用程序中的IE實例中的文件路徑的奇怪問題。file://和文件名中的空格
我有以下的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:///
),所以三個鏈接都可以工作。
有沒有人遇到過這類問題?任何想法如何解決它?
您是否嘗試過編碼原始URL中的空格?或者使用onclick而不是href =「javascript:...」來觸發這個動作?當涉及到處理稍微不正常的URL時,IE有很長的古怪歷史,並且由於該服務是由系統DLL提供的,所以它並不意外我認爲嵌入式系統可能會使用舊版/替代版本 – Shog9 2010-01-19 14:44:15
@ Shog9 - 感謝您的建議 - 我已經嘗試過'%20',現在我嘗試了'onclick' - 沒有運氣。最後5小時 – 2010-01-19 14:48:15
@ Shog9 - pinging你以防萬一你好奇 - 我解決了下面的問題 – 2010-01-19 15:38:42