Asp.net mvc ie9:调试时弹出恼人的弹出窗口;错误:'__闪存清除回拨';是未定义的“;
我正在一个使用facebook社交小部件的asp.NETMVC网站上工作。每当我启动调试器(ie9是浏览器)时,都会出现许多错误弹出窗口:错误:“\uuu flash\uu removeCallback”未定义 为了验证我的代码不负责任,我创建了一个全新的asp.net mvc站点并点击F5。 如果导航到此url:您将看到弹出窗口出现 使用其他浏览器时,不会出现弹出窗口。 在昨天更新到ie9 RTM之前,我一直在使用最新的ie9测试版,没有遇到这个问题 正如你可以想象的那样,这是非常令人讨厌的。。。 我怎样才能阻止那些弹出窗口? 其他人能复制这个吗Asp.net mvc ie9:调试时弹出恼人的弹出窗口;错误:'__闪存清除回拨';是未定义的“;,asp.net-mvc,visual-studio-2010,facebook,internet-explorer-9,Asp.net Mvc,Visual Studio 2010,Facebook,Internet Explorer 9,我正在一个使用facebook社交小部件的asp.NETMVC网站上工作。每当我启动调试器(ie9是浏览器)时,都会出现许多错误弹出窗口:错误:“\uuu flash\uu removeCallback”未定义 为了验证我的代码不负责任,我创建了一个全新的asp.net mvc站点并点击F5。 如果导航到此url:您将看到弹出窗口出现 使用其他浏览器时,不会出现弹出窗口。 在昨天更新到ie9 RTM之前,我一直在使用最新的ie9测试版,没有遇到这个问题 正如你可以想象的那样,这是非常令人讨厌的。
谢谢大家! 我回答这个问题是因为今天这件事把我逼疯了 这是由flash引起的,通常是当您没有在嵌入对象上放置唯一的id,因此它选择了错误的元素时 解决此问题的最快(也是最好)方法是: 向嵌入/对象添加唯一id 现在这似乎并不总是能解决问题,我有一个网站,无论我设置id的元素是什么,它都不会消失(我怀疑是客户要求我使用的视频播放器) 这段javascript代码(使用jQuery的on document load,替换为您最喜欢的替代方案)将消除它。现在,这显然不会删除某些元素上的回调。他们想删除它肯定是有原因的,也许这会导致javascript中的站点逐渐出现内存泄漏,但这可能是微不足道的 这是一个次要(非最佳)解决方案
$(function () {
setTimeout(function () {
if (typeof __flash__removeCallback != "undefined") {
__flash__removeCallback = __flash__removeCallback__replace;
} else {
setTimeout(arguments.callee, 50);
}
}, 50);
});
function __flash__removeCallback__replace(instance, name) {
if(instance != null)
instance[name] = null;
}
自从我上次需要调试这个项目以来已经有一个多月了。 Facebook现在已经解决了这个问题。恼人的弹出窗口不再显示。
我没有改变任何东西。我似乎也无法解决这个问题,但我至少可以为我的用户隐藏它:
$('#video iframe').attr('src', '').hide();
try {
$('#video').remove();
} catch(ex) {}
第一行防止问题弄乱页面;当jquery显式地将错误从DOM中删除时,第二个函数会接受错误。在我的例子中,我替换了这个标签上面的容器的HTML,并向用户公开这个异常,直到这个修复。我得到了解决方案
try {
ytplayer.getIframe().src='';
} catch(ex) {
}
嗨,谢谢你的信息。但是flash对象是由facebook社交插件通过js调用创建的。不幸的是,我无法控制它的id。因此,使用我发布的第二个解决方案,用于覆盖ITI Matt的jQuery代码,我尝试添加您粘贴到我的$(document).ready方法中的代码,但仍然出现错误。就像圣地亚哥的例子一样,这是由Facebook社交插件引起的。我现在看到一个javascript错误(没有弹出窗口)。此解决方案解决了我的问题。@ubercooluk发生此错误的原因有很多,不幸的是,我的解决方案不适用于所有原因。我正在分享一个解决方案,该方案适用于关系密切的公司。我发现,如果您简单地删除iframe,这种方法也会起作用。