【问题标题】:ie9: annoying pops-up while debugging: "Error: '__flash__removeCallback' is undefined"ie9:调试时烦人的弹出窗口:“错误:'__flash__removeCallback'未定义”
【发布时间】:2012-11-24 04:30:46
【问题描述】:

我正在开发一个使用 facebook 社交小部件的 asp.net mvc 站点。每当我启动调试器(ie9 是浏览器)时,我都会收到许多错误弹出窗口:错误:'__flash__removeCallback' is undefined。

为了验证我的代码没有责任,我刚刚创建了一个全新的 asp.net mvc 站点并按 F5。 如果您导航到此网址:http://developers.facebook.com/docs/guides/web/#plugins,您将看到弹出窗口。

使用其他浏览器时,不会出现弹出窗口。 在昨天更新到 ie9 RTM 之前,我一直在使用最新的 ie9 beta,并且没有遇到这个问题。

你可以想象它非常烦人...... 我怎样才能阻止这些弹出窗口? 其他人可以重现吗?

谢谢!

【问题讨论】:

标签: asp.net-mvc visual-studio-2010 facebook internet-explorer-9


【解决方案1】:

我似乎也无法解决这个问题,但我至少可以为我的用户隐藏它:

$('#video iframe').attr('src', '').hide();
try {
    $('#video').remove();
} catch(ex) {}

第一行防止问题搞砸页面;当 jquery 明确地从 DOM 中删除它时,第二个吃掉了错误。在我的例子中,我正在替换这个标签上方的几个父容器的 HTML,并将这个异常暴露给用户,直到这个修复。

【讨论】:

  • 我发现如果你也简单地删除 iframe 也可以。
【解决方案2】:

我正在回答这个问题,因为这让我今天陷入困境。

这是由 flash 引起的,通常是当您没有在嵌入对象上放置唯一 id 时,它选择了错误的元素。

解决这个问题最快(也是最好)的方法是:

为您的嵌入/对象添加唯一 ID

现在这似乎并不总是能解决它,我有一个网站,无论我在什么元素上设置 id,它都不会消失(我怀疑这是客户要求我使用的视频播放器)。

这个 javascript 代码(在文档加载时使用 jQuery,替换为您最喜欢的替代方案)将摆脱它。现在这显然不会删除某些元素的回调。他们一定想删除它是有原因的,也许它会导致您的网站在 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;
    }

【讨论】:

  • 嗨,谢谢你的信息。但是 flash 对象是由 facebook 社交插件通过 js 调用创建的。不幸的是,我无法控制它的 ID。
  • 所以使用我发布的第二个解决方案,覆盖它的 jQuery 代码
  • 嗨,马特,我尝试在我的 $(document).ready 方法中添加您粘贴的代码,但仍然出现错误。在 SantiagoIT 的案例中,这是由 Facebook 社交插件引起的。
  • 我现在看到了一个 javascript 错误(没有弹出窗口)。这个解决方案解决了我的问题。
  • @ubercooluk 发生此错误的原因有很多,不幸的是我的解决方案并不适用于所有这些。我正在分享一个对我有用的解决方案
【解决方案3】:

我找到了解决方案。

try {
  ytplayer.getIframe().src='';
} catch(ex) {
}

【讨论】:

    【解决方案4】:

    距离我上次需要调试项目已经过去了一个多月。 Facebook 现在已经解决了这个问题。烦人的弹出窗口不再出现。 我没有改变任何东西。

    【讨论】:

      猜你喜欢
      • 2013-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      相关资源
      最近更新 更多