使用名为fineloader的JavaScript插件上传文件。我的代码位于下方,live demo is located here。由于某种原因,按钮和输入不显示使用IE7和我的笔记本电脑使用IE8,但显示使用我的虚拟机和IE8以及IE9 / FF /等。任何使其可见的帮助都将非常感激。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Fine Uploader - Basic</title>
</head>
<style>
#upload-block {width: 280px;}
button.gray {
border:1px solid black;
color: black;
height: 25px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="fineuploader-3.1.js"></script>
<script>
$(document).ready(function() {
var uploader = new qq.FineUploaderBasic({button: document.getElementById('uploader')});
});
</script>
<body>
<div>
<label>FILE:</label>
<div id="upload-block">
<div id="uploader">
<input type="text" readonly id="myFilename">
<button class="gray">BROWSE</button>
</div>
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
您的上传按钮有点奇怪。为什么提供一个已经有文本输入的div和一个按钮元素作为子元素?您是否知道上传器还添加了一个文件输入元素作为按钮的子节点(在本例中为#uploader)?
我建议你把文字输入移到其他地方,虽然我不能肯定地说这对你造成了问题,因为我看起来都很好。虽然,我没有IE8的真实副本(我使用的是兼容模式,就像这里的其他海报一样)。
我建议您将上传按钮选项元素修改为这样:
<div id="uploader">
<div>BROWSE</div>
</div>
将你的文本输入到其他地方,也许作为#uploader的兄弟。
此外,请勿为您的上传器“按钮”使用按钮元素。 IE中事件委派的问题将阻止输入子节点(由Fine Uploader添加)接收单击事件。
答案 1 :(得分:1)
我正在使用fineuploader 3.3,但我相信这是同样的问题。实际上,它与你的代码无关,但是一个精细上传代码中的一个小错误 - 按钮就在那里,它只是不可见:),它可以被点击(在“文件”标签下面)
找到文件util.js和行
/**
* Sets styles for an element.
* Fixes opacity in IE6-8.
*/
css: function(styles) {
if (styles.opacity !== null){
if (typeof element.style.opacity !== 'string' && typeof(element.filters) !== 'undefined'){
并改为
/**
* Sets styles for an element.
* Fixes opacity in IE6-8.
*/
css: function(styles) {
if ((styles.opacity !== null) && (typeof styles.opacity !== 'undefined')) {
if (typeof element.style.opacity !== 'string' && typeof(element.filters) !== 'undefined'){
(只有第一个IF发生了变化,其余的代码才更容易找到)
在你的fineuploader-3.1.js中,它有点难以找到,它只是在文件的开头,只需仔细更改IF代码。