是否有人设法从https://github.com/aFarkas/webshim/获取文件阅读器垫片以在IE9中工作。
event.target.files未定义,我无法获取有关所选文件的任何信息?
我有
$('#fp_file').on('change',function() {
fileSelected( $(this) );
});
// File selected
function fileSelected(ele)
{
var file = $(ele).prop('files')[0];
var fileSize = 0;
if(file)
{
if(file.size > 1024 * 1024)
{
fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
}
else
{
fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
}
$('#fileName').html(file.name);
$('#fileSize').html(fileSize);
$('#fileType').html(file.type);
$('#file_dets').show('slide');
}
else
{
alert('no file : ' + file);
}
}
以及以下HTML ...
<!DOCTYPE html>
<html>
<head>
<title>Financial Promotions Form</title>
<link rel="stylesheet" type="text/css" href="financial_promotion.css" />
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script src="js-webshim/minified/extras/modernizr-custom.js" type="text/javascript"></script>
<script src="js-webshim/minified/polyfiller.js" type="text/javascript"></script>
</head>
<body>
<div id="wrapper">
<form id="financial_promotion" action="financial_promotions.pl" method="post" enctype="multipart/form-data">
<fieldset>
<legend>Promotion Documentation </legend>
<label for="fp_file">Upload File</label>
<input class="ws-filereader" type="file" name="fp_file" id="fp_file" />
</fieldset>
<fieldset id="file_dets">
<legend>File Information</legend>
<div>
<label for="fileName">Name</label><span id="fileName"></span>
</div>
<div>
<label for="fileSize">Size</label><span id="fileSize"></span>
</div>
<div>
<label for="fileType">Type</label><span id="fileType"></span>
</div>
</fieldset>
</form>
</div>
</body>
</html>
但是,我无法访问已选择的文件,如果我使用$(ele).prop('files')[0];
或event.target.files
或任何其他组合似乎无关紧要,它在IE9中始终未定义?
答案 0 :(得分:0)
bah欺骗!
GITHUB上的例子注释了使它工作的位!!!
//webshims.setOptions('basePath', '/js-webshim/minified/shims/');
我在文档中看到了这一点并错误地认为它是在说 - 看到这个设置 - 不要使用它! - 注释掉代码的性质也是如此。
我只需要正确设置basePath就可以了。
webshims.setOptions({
'basePath':'/my/folder/path/js-webshim/minified/shims/'
});
webshims.polyfill('forms forms-ext filereader');
希望它可以帮助我所见过的所有其他人,就像我一样,OP没有头发了!
----&GT;更新日期:27.05.2014&lt; ----
我认为这种polyfil /垫片不起作用。一旦你在IE9中运行它,你会发现flash对象会覆盖input元素,所以当选择一个文件时,底层的输入元素不会被所选的文件填充,因此表单不能作为输入为空。