IE9 不能显示本地图片问题

ww274857956 2011-05-28 10:01:34
一个 file 标签 存放地址 onchange事件的时候 更改 img 标签的 src = file 的 value
测试 360 火狐 都可以 更改图片
但是IE9 图片并不改变 但是测试里面的代码确实有执行 就是图片死不改变
求解 是不是安全性 还是啥?
...全文
878 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haanya168 2013-12-17
  • 打赏
  • 举报
回复
引用 2 楼 zyd654 的回复:
这是我从网上down下的例子,我自己研究了下,也可以写成这样,但是只针对IE9,例: function getValue(obj) { if (version.substr(version.indexOf("MSIE") + 5, 1) >= 9) { var strPic = obj.value; obj.select(); obj.blur(); strPic = document.selection.createRange().text; return strPic; } } 所谓的obj就是file。
有没有试过iframe嵌套的情况?
zyd654 2011-11-04
  • 打赏
  • 举报
回复
少写了一句话,抱歉“var version = window.navigator.userAgent;”
zyd654 2011-11-04
  • 打赏
  • 举报
回复
这是我从网上down下的例子,我自己研究了下,也可以写成这样,但是只针对IE9,例:
function getValue(obj)
{
if (version.substr(version.indexOf("MSIE") + 5, 1) >= 9) {
var strPic = obj.value;
obj.select();
obj.blur();
strPic = document.selection.createRange().text;
return strPic;
}
}
所谓的obj就是file。
zyd654 2011-11-04
  • 打赏
  • 举报
回复
在IE9下,本地图片预览都无法正常显示,经过测试发现,原因在于IE9下无法获取file控件的文件路径。

以前的代码如下:

var strPic = fileImg.value;

if ($.ie && $.browser.version > 6) {
fileImg.select();
strPic = document.selection.createRange().text;
document.selection.empty();

}

如果strPic不为空,则使用滤镜预览。

以上代码在IE 6 7 8均正常使用,在IE9下,document.selection.createRange()拒绝访问,看来安全性有所提高。

最后测试发现,在IE9下,如果file控件获得焦点,则document.selection.createRange()拒绝访问,

因此,只需要在fileImg.select()后面加一句fileImg.blur()即可。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧