【问题标题】:Removing a SC Widget on Internet explorer 11删除 Internet Explorer 11 上的 SC 小部件
【发布时间】:2014-11-17 10:58:04
【问题描述】:

我有这样的东西。

<div class="player-wrapper"><iframe id="sc-palms" class="player-iframe" width="100%" height="120" scrolling="no" frameborder="no" src="http://w.soundcloud.com/player/?url=http://api.soundcloud.com/tracks/164940733&amp;auto_play=false&amp;hide_related=false&amp;show_comments=true&amp;show_user=true&amp;;show_reposts=false&amp;visual=true"></iframe></div>

我创建了一个 soundcloud 小部件:

iframe = document.getElementById('sc-palms')
player = SC.Widget(iframe)

我绑定了一些点击事件来触发toggle() 方法。用户还可以“跳过”并加载新歌曲。这首歌可能来自 soundcloud 以外的其他地方,所以我需要完全删除 iframe 和小部件。除了在 Internet Explorer 上,我没有任何问题。目前我正在通过此代码删除播放器:

player = null;
$(".player-wrapper").html("");

如果 soundcloud 播放器正在播放,则 iframe 被移除,小部件的声音仍在后台播放。任何关于如何在 IE 11 中进一步杀死该玩家的想法将不胜感激。如果您需要更多信息,请询问。

谢谢。

【问题讨论】:

    标签: iframe widget soundcloud internet-explorer-11


    【解决方案1】:

    我能够通过将 iframe 的 src 属性设置为空字符串来实现所需的行为。当我通过以下方式删除播放器时:

    $("player-wrapper iframe").attr("src","");
    

    而不是

    $("player-wrapper").html("");
    

    播放器停止播放。

    我相信这可能与 Internet Explorer 不允许在 iframe 具有 javascript 事件或侦听器或仍然与它们相关联的东西时被删除有关。如果我听起来好像我不知道我在说什么,那是因为我不知道。如果有人想给出更好的答案或对此答案发表评论,我可以更好地理解更新它。我之所以想尝试这种方法是因为这两个链接:

    https://www.drupal.org/node/1777238

    http://msdn.microsoft.com/en-us/library/gg622929%28v=VS.85%29.aspx?ppud=4

    让我想到这些方面的引述是这样的:

    “总而言之,如果 iframe 将执行 javascript,IE9 不允许从 DOM 中删除它。这是为了解决内存泄漏问题。IE9 将抛出未定义的属性错误。”

    很抱歉给 stackoverflow 添加了一些混乱,但如果有人可以通过这个答案得到帮助,我希望它在那里。我花了几天时间试图解决这个问题。

    【讨论】:

      猜你喜欢
      • 2013-12-29
      • 1970-01-01
      • 1970-01-01
      • 2015-03-27
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      相关资源
      最近更新 更多