我一直在调试嵌入在我的应用程序中的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