我已经阅读了关于在jquery ui对话框中加载plupload小部件的相同问题的所有类似线程,但没有让它在IE9中工作(FF和Safari都正常工作) 。jquery ui对话框中的plupload小部件
问题是,在IE9中,pluginload的Silverlight版本被加载,因为IE9不支持html5文件处理。不知何故,“添加文件”按钮不可按,然而,“启动上传”按钮是。从我迄今为止阅读的内容来看,这是由于在打开UI对话框之前被隐藏导致的。有几个人建议使用调用来刷新上传器小部件,但这没有什么区别。
相应的JavaScript代码如下: $( “#上传的小部件容器”)对话框({ 的AutoOpen:假的, 显示: “盲”, 躲: “折叠”, 模式:假, width:660, height:400, resizable:false });
$("#upload-widget").pluploadQueue({
runtimes : 'html5,silverlight,flash,browserplus',
container: 'upload-widget-container',
url : 'upload.php',
max_file_size : '100mb',
chunk_size : '1mb',
unique_names : true,
filters : [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"},
{title : "Bin files", extensions : "bin"}
],
flash_swf_url : '/js/plupload/plupload.flash.swf',
silverlight_xap_url : '/js/plupload/plupload.silverlight.xap'
});
$('.upload-button').live('click', function(e)
{
$('#upload-widget-container').dialog("open");
var uploader = $('#upload-widget').pluploadQueue();
uploader.bind('StateChanged', function() {
if (uploader.files.length === (uploader.total.uploaded + uploader.total.failed)) {
// Done uploading
for (var i=0; i < uploader.files.length; i++)
{
if (uploader.files[i].status == plupload.DONE)
{
alert(uploader.files[i].id + ' ' + uploader.files[i].name);
}
}
}
});
}
);
的标记看起来是这样的:
<div id="upload-widget-container">
<div id="upload-widget"></div>
</div>
<a class="upload-button green-button-148" href="#" rel="1234">Upload</a>
如何在IE9/Silverlight中得到这个工作任何想法?如上面的代码所示,刷新plupload对象和设置.plupload div的z-index的行并没有什么区别。
更新:它实际上看起来像一个IE9问题,因为如果我在FF和Safari中使用plupload的silverlight运行时,它工作正常。所以这是plupload,一个jQuery UI对话框,Silverlight和IE9的组合。
更新2:所以我做了一个普通的香草测试页面,没有其他标记,CSS或JS。这消除了其他脚本或标记或样式干扰这种工作的可能性。 但是它仍然无法在IE 9(版本:9.0.8112.16421)中使用。
但是,如果我删除包含jQuery UI主题CSS的行,它可以工作,并且Add Files按钮是可单击的。 有了这些新信息的新想法吗?我猜它必须在UI主题CSS或类似的显示属性。
哈哈,当然是IE了。在最近的一个项目中,由于IE,我还花了比需要的多几个小时。很高兴你找到解决方案:) – jjay225 2012-08-11 09:51:48