input.outerHTML=input.outerHTML.replace(/(value=\").+\"/i,"$1\"");
http://www.jb51.net/article/24872.htm
在使用<input type='file' />控件的过程中,发现一个只有IE8下才存在的BUG,有时候取文件上传的路径(value),会由类似于D:\*.*变成C:\fakepath\*.*,即真实的路径被C:\fakepath\所取代了。
这个BUG在IE8下的出现情况目前基本上确定与代码的写法有关,但具体什么情况下会出现并不清楚,IE8下并不是所有的页面都会出现这个问题。
关于这个问题的由来,网上有很多文章和帖子都指向同一个地址:http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-March/019018.html,可惜这个文章是英文的,我的英文水平有限,只能用google翻译看个大概,问题可能与Web标准有关。
目前网上有两种解决方案:
第一种,是更改用户的IE8的浏览器设置
工具 -> Internet选项 -> 安全 -> 自定义级别 -> 找到“其他”中的“将本地文件上载至服务器时包含本地目录路径”,选中“启用”即可。
第二种,在IE中使用下面的脚本函数来替换直接取控件value的操作(FireFox中使用obj.files.item(0).getAsDataURL())
function getValue(obj) {
obj.select(); //该对象选取
return document.selection.createRange().text; //返回选取项的文本内容
}
显然,对于Web开发来说,最好是不出现该Bug,如果经过测试,IE8下某个页面中的input file控件不存在该Bug,则可以不必考虑该问题。
如果存在该Bug,而且无法找到原因时,第二种解决方案是比较好的选择
第一种解决方案并不可行,不可能要求所有的用户为了访问我们的网站更改IE设置。
分享到:
相关推荐
自己总结的file上传数据的一些小经验,给大家分享下,希望对大家有帮助
具体的实现步骤包括获取`input file`元素,通过`document.getElementsByTagName`获取到`input`元素的引用,然后通过一些DOM操作,例如创建新的`TextRange`来模拟用户选中文本,通过`SendKeys`模拟键盘输入等方法,来...
首先,通过`getElementById`获取到`<input type="file">`元素的引用,然后调用`select()`方法选中该输入框,接着使用`document.selection.clear()`清除当前的选择。这种方法基于浏览器的旧版选择和清除机制,其工作...
在Vue.js框架中,处理`<input type="file">`元素时,用户选择文件后,如果需要清空已选择的文件路径,可以采用多种方法。本文将详细讲解两种常见的解决方案,以及如何在Vue实例中实现这个功能。 首先,让我们看下在...
标题中提到的“清空input类型为file的value属性值的方法”,涉及到JavaScript在操作DOM时遇到的特性。在Web开发中,`value`属性用于获取或设置表单元素的值。对于`file`类型的`<input>`元素,它的值是一个路径字符串...
要实现清空文件选择的功能,一种常见的方法是利用DOM操作,动态创建新的`<input type="file">`元素来替换已有的。这是因为每次创建新的`<input type="file">`,都会重置用户的文件选择。以下是一个简单的示例: ```...
这种方法虽然能有效清空`<input type="file">`的值,但请注意,这样做并不会真正删除用户已选择的文件,只是从视觉上清空了控件。如果需要在用户重新选择文件之前阻止旧文件的上传,你需要在提交表单或发送文件到...
在进行Web开发的过程中,经常会遇到需要通过JavaScript清空`<input type="file">`上传控件中的文件选择值的需求。然而,根据HTML标准,`<input type="file">`控件的值是不允许通过JavaScript直接进行修改的。原因...
这个函数创建了一个新的`<form>`元素,将`<input type="file">`元素添加到新表单中,然后调用`reset`方法清空表单,最后将原始的`<input type="file">`元素放回原位置。 需要注意的是,虽然这两种方法都可以实现...
本文主要讨论的是如何使用jQuery来解决一个特定的问题:清空`<input type="file">`(文件域)的值。由于浏览器的安全策略,尤其是Internet Explorer(IE)的限制,直接通过`.val('')`方法无法清空文件域的值。为了...
<input type="file" id="newUpload" >然后,我们可以通过document.getElementById()方法获取input标签,并通过files属性获取上传的文件。但是,需要注意的是,HTMLElement对象没有files属性,我们需要将其强制转换为...
在Web开发中,文件输入类型(通常称为<input type="file">)允许用户选择文件并上传到服务器。然而,在某些场景下,开发者可能需要通过JavaScript清空或重置文件选择器的当前值。这种需求往往因为一些安全限制,不能...
### JavaScript获取和清空input type="file"值的知识点 #### 1. 获取input type="file"的值 `<input type="file">`元素允许用户选择一个或多个文件,这些文件的路径将通过其`value`属性返回。然而,需要注意的是,...
另一种方法是创建一个临时的`<form>`元素,将`<input type="file">`添加到这个新表单中,调用`reset`方法清空,然后再将文件输入控件放回原处。这种方法的代码如下: ```html <input type="file" id="fileInput"> ...
在清空input file标签选中值时,分别用了以下方法,发现有的对有的错: 【√】$(“#file”)[0].value = “”; 【√】$(“#file”)[0].value = null; 【×】$(“#file”).attr(“value”,””); 【×】$(“#file”)....
当用户点击按钮触发事件时,可以利用JavaScript删除原有的`<input type="file">`元素,并重新创建一个新的`<input type="file">`元素来替代它,从而达到清空文件选择的效果。 示例代码如下: ```html <input ...