IE8 javscript上传文件出现 fakepath 的解决方法
|
admin
2010年11月18日 18:25
本文热度 3991
|
IE8的安全性有所改动,用JavaScript预览本地图片的功能失效了,真实的路径被C:\fakepath\取代了,原来是因为IE8增加了安全选项,默认情况下不显示上传文件的真实路径,进入internet选项,修改下设置即可显示真实的文件路径。
工具 -> Internet选项 -> 安全 -> 自定义级别 -> 将本地文件上载至服务器时包含本地目录路径,选中启用即可。
附带不用修改浏览器安全配置的javascript代码,兼容ie, firefox全系列
- function getPath(obj)
- {
- if(obj)
- {
-
- if (window.navigator.userAgent.indexOf("MSIE")>=1)
- {
- obj.select();
-
- return document.selection.createRange().text;
- }
-
- else if(window.navigator.userAgent.indexOf("Firefox")>=1)
- {
- if(obj.files)
- {
-
- return obj.files.item(0).getAsDataURL();
- }
- return obj.value;
- }
- return obj.value;
- }
- }
参数obj为input file对象
document.selection 介绍
document.selection 表示当前网页中的选中内容。
方法有:
属性有:
- type 选中内容的类型
- typeDetail 不支持
二、document.selection.createRange()详细介绍
document.selection.createRange() 根据当前文字选择返回 TextRange 对象,或根据控件选择返回ControlRange 对象。
配合 execCommand,在 HTML 编辑器中很有用,比如:文字加粗、斜体、复制、粘贴、创建超链接等。
例子:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" >
- <head>
- <title>document.selection 的 createRange</title>
- </head>
- <body>
-
- <div>请选中这里的部分文字。</div>
- <div><input type="button" value="加粗" onclick="javascript:Bold();" /></div>
- <script type="text/javascript" language="javascript">
- <!--
- function Bold()
- {
- var r = document.selection.createRange();
- r.execCommand("Bold");
- }
- -->
- </script>
-
- </body>
- </html>
该文章在 2010/11/18 18:25:24 编辑过