使用场景结合artdialog弹出框使用时发生“__flash__removeCallback”未定义,原因在于artdialog基于iframe加载的uloadify,在关闭artdialog的时候会执行清空iframe的操作,猜测uploadify的flash控件绑定了unload的事件,在卸载dom的时候进行回调,但是这个时候artdialog已经清空了iframe中的代码;网上去查找了资料,发现也有类似的情况,表明应该是这个问题,最终解决方案如下:
var dialog = $("#btnImport").click(function () { art.dialog.open(app.applicationPath + "/CentOptAnalysis/CoAnalysis/OptimizationTuningUpload", { title: "导入数据", 320, height: 200, id: 'optimizationTuningUploadDialog', lock: true, close: function () { //清空jquery.uploadify控件,否则会报flash回调异常 var c = art.dialog.list["optimizationTuningUploadDialog"]; c.iframe.contentWindow.clearUploadHtml(); } }); });
function clearUploadHtml() { document.getElementById("txtFileUpload").innerHTML = ""; } function closeDialog() { clearUploadHtml(); art.dialog.close(); }
txtFileUpload是uploadity的初始化控件,这里提供了父级在close的时候清空uploadity控件