如果未在file_dialog_complete_handler中调用SWFCUpload startUpload(),
SWFUpload startUpload() fails if not called within the file_dialog_complete_handler
我正在尝试让SWFCUpload将图像以及图像附带的其他发布数据正确上传到我的服务器。有一个表格可以填写数据,因此在用户单击浏览按钮并选择他的图像文件后,图像不会立即上传。它一直保存在队列中,直到用户单击发送按钮,然后我调用mySwfUploadInstance.startUpload(),以便开始上传。
但它在函数"callFlash"中swfupload.js的第452行惨败:
Uncaught Call to ReturnUploadStart failed
抛出此错误之前捕获的异常如下:
Object #<HTMLObjectElement> has no method 'CallFunction'
在以下功能中:
SWFUpload.prototype.callFlash = function (functionName, argumentArray) {
argumentArray = argumentArray || [];
var movieElement = this.getMovieElement();
var returnValue, returnString;
// Flash's method if calling ExternalInterface methods (code adapted from MooTools).
try {
returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>');
returnValue = eval(returnString);
} catch (ex) {
throw "Call to " + functionName + " failed";
}
// Unescape file post param values
if (returnValue != undefined && typeof returnValue.post === "object") {
returnValue = this.unescapeFilePostParams(returnValue);
}
return returnValue;
};
movieElement看起来像是一个有效的flash对象。
如果在初始化SWFPUpload:时,在传递给file_dialog_complete_handler的函数中调用startUpload(),则不会出现该错误
function ImageFileDialogComplete(numFilesSelected, numFilesQueued)
{
try
{
this.startUpload();
}
catch (ex)
{
this.debug(ex);
}
}
我真的需要能够将上传推迟到用户完成表单并单击发送按钮时。
当我从对话框完整处理程序中调用startUpload()时,你知道SWFUPload有什么问题吗?
问题似乎是因为我在调用startUpload()之前,通过设置display:none来隐藏包含flash对象的div。我这样做是为了隐藏表单并显示带有进度条的div。
由于某些原因,flash对象必须在屏幕上保持可见,否则对其进行的所有调用都将失败。
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- Twitter Bootstrap typeahead:使用“this”获取上下文/调用元素
- node.js:setInterval()正在跳过调用
- 如何在单击复选框后调用控制器方法
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 使用Google Visualization动态调用构造函数
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 调用函数内部的函数
- 函数未在Object.keys或Object.getOwnPropertyNames下列出,但可以调用
- Javascript/jQuery中的并行Ajax调用
- 如果未在file_dialog_complete_handler中调用SWFCUpload startUpload(),