0

我正在移动 Safari 中编写一个网络应用程序,我似乎对一些我认为应该足够简单的事情感到困惑,尽管它现在正在躲避我。

本质上,我有iframe一个srcyoutube 视频。当有人点击某个兴趣点时,它会以某种模式显示该视频。它也有一个用于关闭的关闭按钮。

这仅使用 jQueryshowhide方法。字面上地:

$(".selector").on("click", function() {

    $(this).show();

});

$(".selector").on("click", function() {

    $(this).hide();

});

当模式出现时,用户必须点击 youtube 视频来播放它。那部分一切都很好。

当您关闭它并尝试再次打开它时,奇怪的部分就会发挥作用。模态弹出,但视频是空白的。只有黑屏,但可以听到视频仍在播放。

我猜这与创建的附加window上下文有关iframe。也许这在那棵特定的树中隐藏了一些额外的东西?

当我在桌面上测试我的移动代码时,它工作正常,我没有任何问题。在 iPhone 上测试没有。

对这个有什么想法吗??

4

1 回答 1

0

好吧,解决了这个问题,但它很奇怪。显然,这是旧桌面版 Safari 中的一个已知问题。这是任何遇到问题的人的解决方案。

像这样设置你的 iFrame:

<iframe id="myYTVideo" src="" frameborder="0" allowfullscreen></iframe>

注意没有src添加任何属性。当您使用 jQuery 打开模式时,请执行以下操作:

$(".openButtonSelector").on("click", function() {
    $("#myYTVideo").show();
    $("#myYTVideo").attr("src", youryoutubesourcehere);
});

关闭它时,请执行以下操作:

$(".closeButtonSelector").on("click", function() {
    $("#myYTVideo").hide();
    $("#myYTVideo").attr("src", "");
});

不是最迷人的解决方案,但它确实有效。不知道为什么它会在随后的通话中搞砸。我想这一定是一个移动 Safari 错误。

于 2013-04-19T16:42:50.273 回答