gpt4 book ai didi

javascript - Flash 运行时在使用 PLupload 的 IE8 中不起作用

转载 作者:数据小太阳 更新时间:2023-10-29 06:13:05 32 4
gpt4 key购买 nike

我在 $(function() { ... }); 正文中有简单的 javascript 函数

var uploader = new plupload.Uploader({
runtimes: 'html5,flash,silverlight',
browse_button: 'pickfiles',
container: 'uploader',
max_file_size: '20mb',
unique_names: true,
multiple_queues: false,
//drop_element: 'dropzone',
url: '/Home/Upload',
flash_swf_url: '../../../Scripts/upload/plupload.flash.swf',
silverlight_xap_url: '../../../Scripts/upload/plupload.silverlight.xap',
filters: [
{ title: "Image files", extensions: "jpg,gif,png" },
{ title: "Zip files", extensions: "zip" }
],
chunk_size: '2mb',
resize: { width: 320, height: 240, quality: 90 }
});

uploader.bind("Init", function (up, params) {
$("#runtime").html("<div>Current runtime: " + params.runtime + "</div>");
});

$("#uploadfiles").bind("click", function (e) {
uploader.start();
e.preventDefault();
});

uploader.init();

uploader.bind("FilesAdded", function (up, files) {
$.each(files, function (i, file) {
$('#runtime').append(
'<div id="' + file.id + '">' +
file.name + ' (' + plupload.formatSize(file.size) + ') <b></b>' +
'</div>');
});
up.refresh();
});

uploader.bind("UploaderProgress", function (up, file) {
$("#" + file.id + " b").html(file.percent + "%");
});

uploader.bind("Error", function (up, file) {
$('#runtime').append("<div>Error: " + err.code +
", Message: " + err.message +
(err.file ? ", File: " + err.file.name : "") +
"</div>");
up.refresh();
});

uploader.bind("FileUploaded", function (up, file) {
$("#" + file.id + " b").html("100%");
});

和HTML代码

<div class="container">
<div>Logo: </div>
<div style="clear"></div>
<div id="uploader">
<div id="runtime" class="right">
No runtime was found !
</div>
<div>
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
</div>
</div>

错误如下图所示: enter image description here

http://i.imgur.com/5t0sT.jpg (查看全尺寸)

我看到文件过滤器有问题。我在 IE8 上运行 PLUpload.com 示例,它在 Flash 运行时运行良好。

在其他浏览器上,我的 uploader 运行完美。另外,我已经为所有浏览器(IE8、FF9、Chrome 16)安装了最新版本的 Flash,但问题仍然存在于 IE8 中。

问题已解决:不要将 uploader 对象插入到具有 visibility:hiddendisplay:none 属性的 div 中。

最佳答案

致所有和我有同样问题的人:

我有以下 HTML 代码

<div class="container" style="display:none">
<div>Logo: </div>
<div style="clear"></div>
<div id="uploader">
<div id="runtime" class="right">
No runtime was found !
</div>
<div>
<a id="pickfiles" href="#">[Select files]</a>
<a id="uploadfiles" href="#">[Upload files]</a>
</div>
</div>
</div>

container 类被创建为对话框

$(function()
{
$(".container").dialog({modal:true, width:400});
});

我们知道 DIV 最初是隐藏的,因为 dispaly:none(当然,您可以将 autoOpen:false 设置为对话框对象中的新选项)和删除样式。

在 IE8 中(可能在更早和更高版本中)如果 div 被隐藏, uploader 将无法很好地实例化。 (返回上述错误)

在 Chrome 和 Firefox 中(我没有在 Opera 中测试这个问题)工作正常。

因此,我的建议是避免隐藏 block (即使您希望创建模态对话框)。

我从那个 div 中删除了 display:none 样式和 dialog 对象,现在在 IE8 中工作得很好。

为什么?我不知道为什么在IE中,在页面启动时没有创建对象的实例,但在Firefox和Chrome中,该实例是正常创建的。

关于javascript - Flash 运行时在使用 PLupload 的 IE8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8723491/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com