`
gallop_liu
  • 浏览: 110092 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

IE9获取file控件的本地文件路径

    博客分类:
  • html
 
阅读更多

今天发现,在IE9 下,彩信页面的图片预览无法正常显示,经查证,原因在于IE9下无法获取file控件的文件路径。

代码如下:

 

var imageUrl = "";
var objTmp = getObj('picfile');
if (window.navigator.userAgent.indexOf("MSIE")>=1){
   	objTmp.select();
        imageUrl = document.selection.createRange().text
}

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

最后测试发现,在IE9下,如果file控件获得焦点,则document.selection.createRange()拒绝访问,
因此,只需要在fileImg.select()后面加一句fileImg.blur()即可。
但是,如果当前页面被嵌在框架中,则fileImg.blur()之后,file控件中原本被选中的文本将会失去选中的状态,因此,不能使用fileImg.blur()。
可以让当前页面上的其他元素,如div,button等获得焦点即可,如div_view.focus()。
注意,如果是div,则要确保div有至少1像素的高和宽,方可获得焦点。
目前在IE9中测试,一切正常。

IE9的处理代码如下:
var imageUrl = "";
var objTmp = getObj('picfile');
var version = window.navigator.userAgent;
if(version.substr(version.indexOf("MSIE") + 5, 1) >= 9){
        imageUrl = objTmp.value;
   	objTmp.select();
   	getObj('picDiv').focus();
  	imageUrl = document.selection.createRange().text;
}

//在页面中添加
<div id="picDiv" style="width: 1px; height: 1px;"></div>
 
 

 

分享到:
评论
3 楼 xb12369 2015-01-12  
  干得漂亮~~~~
2 楼 q653152412 2014-05-08  
图片是显示出来了,但是控制不了大小,怎么办啊?
1 楼 haanya168 2013-12-17  
哥们,你的文章帮我大忙了,谢谢,就是有一个疑惑,将焦点转移到别的input的文本框不行,按照你写的增加一个div就可以

相关推荐

    js如何获取file控件的完整路径具体实现代码

    在进行Web开发时,我们经常会遇到需要通过file控件让用户选择本地文件的场景。然而,出于安全和隐私考虑,浏览器限制了我们通过JavaScript直接访问用户选定的文件的完整路径。这主要是为了防止恶意脚本读取用户的...

    JS正确读取文件路径

    在 IE9 下,如果 file 控件获得焦点,则 document.selection.createRange() 将拒绝访问。这是因为 IE 浏览器的安全机制所致。因此,只需要在 file.select() 后面加一句 file.blur() 即可。 解决方法 然而,这样做...

    关于火狐3和ie无法浏览文件全路径问题

    虽然给定的部分内容代码未能完整展示,但从已有的代码片段中可以看出,作者试图通过检测浏览器类型(IE或Firefox),并根据不同类型的浏览器采用不同的方法来获取本地文件的路径。这种方法的核心在于使用浏览器特有...

    读取input:file的路径并显示本地图片的方法

    在网页开发中,`&lt;input type="file"&gt;` 是一个常见的文件上传控件,它允许用户选择本地的文件,如图片。然而,由于安全原因,现代浏览器并不直接提供所选文件的完整路径,而是返回一个相对安全的文件名或者一个沙箱内...

    WebDirSelector获取本地路径

    "WebDirSelector获取本地路径"这个标题所涉及的知识点,就是关于如何在Web环境中获取用户的本地文件系统路径。这个过程通常涉及到浏览器安全策略、JavaScript API以及可能的服务器端处理。 首先,我们要理解浏览器...

    解析使用JS 清空File控件的路径值

    在网页开发中,File控件(`&lt;input type="file"&gt;`)经常用于用户选择本地文件上传至服务器。然而,由于安全原因,浏览器通常不允许JavaScript直接修改File控件的value属性,以防止恶意脚本篡改用户选定的文件。本文将...

    IE8上传文件时javascript取文件的真实路径的问题(\"C:\\fakepath\\xxxxx )

    5. **使用Flash或ActiveX控件**:如果必须在IE8上获取真实路径,可以考虑使用Flash或ActiveX插件,但这会增加兼容性问题和安全风险。 压缩包中的`fileupload.jsp`文件可能是一个示例或模板,用于演示如何在Java...

    整理 IE 7、8预览本地图片和获取本地图片大小

    标题中的“整理 IE 7、8 预览本地图片和获取本地图片大小”涉及到的是在Internet Explorer 7和8这两个较旧版本的浏览器中,如何处理本地图片的预览和获取图片尺寸的问题。在早期的Web开发中,由于浏览器兼容性问题,...

    IE文件选择框

    在IE中,通过JavaScript可以获取用户选择的文件信息,但出于安全考虑,浏览器不会提供文件的完整路径,只能获取文件名。例如,通过`event.target.files[0].name`可以获取选中文件的名称。如果需要将文件上传至服务器...

    IE6/IE7/IE8兼容本地上传图片并预览源代码

    需要注意的是,由于安全和隐私原因,IE和现代浏览器都对本地文件系统有严格的限制,通常不允许直接访问文件路径。因此,我们只能获取到文件的二进制数据或数据URL,而不是实际的文件路径。 此外,IE6和7并不支持CSS...

    js读写本地文件js读写本地文件

    ### JavaScript 读写本地文件详解 #### 一、概述 在Web开发中,JavaScript作为一种广泛使用的客户端脚本语言,主要用于实现网页的动态效果与交互功能。然而,由于浏览器的安全限制,默认情况下JavaScript是无法...

    JS获取文件大小方法小结

    在某些早期版本的IE浏览器中,可以设置`img`元素的`dynsrc`属性来预加载文件,然后通过`fileSize`属性获取文件大小。然而,这种方法并不普遍适用,因为它在IE7、IE8、Firefox以及Chrome等现代浏览器中可能无法正常...

    文件上传控件PlupLoad 的使用

    在网页开发中,文件上传功能是不可或缺的一部分,而PlupLoad是一款高效、强大的文件上传控件,它提供了丰富的API和多种皮肤,支持多浏览器,包括IE6在内的老旧浏览器,使得文件上传体验更加友好。本文将深入探讨...

    javascript 获取表单file全路径

    本文将深入探讨如何在IE6、IE7以及Firefox等浏览器中获取文件输入控件的全路径,并提供一个具体的解决方案。 在早期的Internet Explorer(如IE6)中,用户可以通过`&lt;input type="file"&gt;`选择文件后,直接通过该元素...

    如何使用JS获取IE上传文件路径(IE7,8)

    在JavaScript中,获取IE浏览器(特别是版本7和8)上传文件的完整路径是一个相对复杂的过程,因为出于安全考虑,现代浏览器不再返回文件的实际路径。在IE7和IE8中,可以通过选择文件后利用`document.selection....

    文件上传input file简便美化方案(css)

    在这个JavaScript代码中,我们为file input添加了事件监听,当用户选择文件之后,会触发事件处理函数,该函数会将文件路径设置到文本框中。如果浏览器不支持addEventListener或attachEvent方法,我们使用传统的...

    vc控件在IE8中不能调试的解决办法

    2. **指定调试程序**:在“可执行文件用于调试会话”字段中填写IE的路径。 3. **设置启动参数**:在“程序参数”字段中输入包含调试页面地址的参数,例如`-url file:///D:\debug.htm`。 这样,每次启动调试时,IE...

    JS读取本地XML(支持IE和火狐)

    所以,"JS读取本地XML(支持IE和火狐)"的实现是基于用户交互,而非直接访问本地文件路径。 综上所述,实现JS在IE和火狐中读取本地XML的关键在于使用FileReader API读取文件内容,然后使用XMLHttpRequest或...

Global site tag (gtag.js) - Google Analytics