当前位置:

首页 > 编程开发 > ie9下关闭弹出窗口出现__flash__removeCallback未定义错误

ie9下关闭弹出窗口出现__flash__removeCallback未定义错误

在IE9浏览器中,使用swfupload和artdialog插件时,关闭弹出窗口常报__flash__removeCallback未定义错误。该错误原因是artdialog调用empty()方法清空内容时移除了Flash对象及其回调脚本。解决方法:应当先将Flash父元素移出DOM,再清空内容,从而确保回调函数始终可用。

使用 swfupload 作为上传组件、artdialog 作为弹出窗口,结果在关闭弹出窗口时,频频跳出“__flash__removeCallback”未定义的错误。关了又弹,弹了又关,实在让人头疼。

网上不少方案都在提同一个思路——覆写 __flash__removeCallback 函数。实际上 swfupload 本身已经自带了一段这样的代码:

// Fix Flashes own cleanup code so if the SWFMovie was removed from the page
// it doesn't display errors.
window["__flash__removeCallback"] = function (instance, name) {
    try {
        if (instance) {
            instance[name] = null;
        }
    } catch (flashEx) {
    }
};

按理说有了这段兜底,Flash 被移除时应该能找到回调。但在实际环境中,这招并不总是奏效。问题的根源其实很简单:Flash 对象从文档中被移除时,需要调用这个回调函数,可此时函数定义却找不到了。

顺着 artdialog 的关闭流程看下去,它会执行 .html("") 把内容清空。这一清空,Flash 对象直接被干掉了,而定义 __flash__removeCallback 的那个脚本文件也随着内容一起被移除了。回调函数自然就消失了——所以报错。

那怎么破?关键是在清空内容之前,先把 Flash 对象从 DOM 里摘掉。比如直接移除包含 Flash 的父元素:div.remove();。这样 Flash 被移除时,__flash__removeCallback 函数依然存在于全局作用域中,不会被连带删除。

总而言之,要解决这个错误就两步:一是确保那段回调函数的定义始终存在;二是确保在移除 Flash 对象时,这个函数仍然可用。顺序很重要,先移除对象,再清空内容,就不会再弹那个恼人的未定义错误了。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 ie9
相关文章 更多
fckeditor在ie9中无法弹出对话框的解决方法(弹出层兼容问题)
fckeditor在ie9中无法弹出对话框的解决方法(弹出层兼容问题)

IE9下FCKeditor弹出对话框无响应,因不支持var$=document.getElementById简写。修改fckeditor/editor/js/fckeditorcode_ie.js第38行RegisterDollarFunction函数,将赋值改为匿名函数即可解决。

如何在Mac上设置允许弹窗? Mac浏览器允许使用弹出式窗口设置方法
如何在Mac上设置允许弹窗? Mac浏览器允许使用弹出式窗口设置方法

在Mac上使用浏览器时,弹出窗口阻止程序默认是开启的——这个设计初衷是为了保护你的浏览体验,但有时候它反而会碍事。比如某些在线服务、支付页面或后台管理工具,会依赖弹出窗口来完成关键操作。今天就手把手带你把Safari、Chrome和Firefox的弹出窗口限制关掉,同时聊聊这么做背后的门道。 如何在

ie9怎么设置兼容模式
ie9怎么设置兼容模式

IE9浏览器在界面和内核上进行了升级,以提升浏览速度与安全性。但部分旧版网页可能无法正常显示,需启用兼容性视图。具体步骤为:启动浏览器后点击右上角齿轮图标,选择“兼容性视图设置”,在弹出窗口中输入目标网址并添加,关闭设置后刷新页面即可。

ie9怎么设置删除不可用加载项
ie9怎么设置删除不可用加载项

IE9浏览器长期使用后可能积累失效加载项,导致运行卡顿。可通过清理注册表彻底移除:首先打开注册表编辑器并备份注册表;随后定位至IE加载项路径,比对浏览器内不可用加载项的类ID;确认后删除对应注册表项,最后重启浏览器验证生效。定期管理加载项有助于保持浏览器稳定。

ie9怎么修改下载默认的储存位置
ie9怎么修改下载默认的储存位置

IE9浏览器以其简洁界面和高速性能著称。若需更改其默认下载位置以节省系统盘空间,可依次点击右上角“工具”按钮,选择“查看下载”,在弹出窗口左下角点击“选项”,进入设置后通过“浏览”按钮选择新的存储文件夹并确认即可。此后所有下载文件将自动保存至新位置。

ie9怎么设置安全级别
ie9怎么设置安全级别

IE9通过硬件加速和现代标准支持提升了浏览体验。设置安全级别需打开工具菜单,进入Internet选项并切换至安全标签页。可选择预设级别或自定义详细选项,也可为受信任站点单独配置。完成设置后点击确定即可生效。

ie9怎么显示收藏夹栏
ie9怎么显示收藏夹栏

IE9默认隐藏了传统收藏夹栏。要显示它,可在浏览器顶部空白处右键,勾选“菜单栏”,随后地址栏下方会出现包含“收藏夹”的菜单栏。也可按Alt键临时显示。在“收藏夹”菜单中,可添加、整理书签或快速访问已存链接。

ie9怎么设置本地Internet安全
ie9怎么设置本地Internet安全

IE9浏览器内置安全防护机制,配置“本地Internet”区域设置可平衡浏览体验与安全。具体步骤为:启动浏览器后,点击右上角“工具”菜单,选择“Internet选项”,切换至“安全”选项卡,选中“本地Internet”区域,通过滑块调整默认安全级别或点击“自定义级别”进行详细配置。

ie9怎么打开刚刚关闭的网页
ie9怎么打开刚刚关闭的网页

IE9浏览器提供恢复误关闭网页的功能:用户可通过“重新打开最后一次关闭的选项卡”快速恢复单个页面,或选择“重新打开已关闭的选项卡”查看并恢复多个页面。此外,新建选项卡页面还支持InPrivate隐私浏览模式,该模式不保存浏览记录与Cookies。

ie9怎么设置执行全屏
ie9怎么设置执行全屏

IE9浏览器界面简洁、性能优化,支持现代WEB标准。设置全屏模式有两种方法:一是在工具栏空白处右键,勾选“命令栏”后点击“工具”菜单中的“全屏”选项;二是直接按键盘上的“F11”键快速切换全屏与常规窗口模式。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。