在包含多个 SoundCloud iframe 的页面上,这些 iframe 的随机子集在 Chrome 和 Firefox 中均不可见,并且它们不包含正常的 SoundCloud 内容,而是包含以下 HTML。受影响的 iframe 通常会随着每次页面加载而变化,同一页面上的 youtube iframe 不受影响。有谁知道原因和/或解决方法?
更新:进一步检查,这是标准的 SoundCloud 内容,除了 div id="widget" 是空的,并且在单个 iframe 上手动重新加载 iframe 会强制它可见。这可能是第一次加载 iframe 的情况,然后使用 XHR 获取 div 内容,并且在浏览器在拥挤的网络上处理大量负载的页面上,一些 XHR 静默超时?如果是这样 SoundCloud,你能增加你的 XHR 超时吗?
更新 2:我在同一 LAN 上的 2 台不同机器上对此进行了更多测试,看起来这可能是当前版本的标准 Flash 插件(winXP 上的 11.5.502.110——通过自动更新安装9,大约是什么时候开始的,以及 Ubuntu 12.04 上的 11.2.202——今天安装,11 月 27 日)。以下信息应使其可重现。我在两台机器上的 Firefox 中都得到 100% 一致的故障,并且我可以通过启用标准插件与 Chrome 自己的 PepperFlash 插件在 Chrome(两台机器上)中打开和关闭故障。PepperFlash 100% 没有失败,但当前版本的 PepperFlash 播放器无法使用,因为音频非常不稳定。
<html lang="en">
<head>
<meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title>SoundCloud Widget</title>
<base target="_blank">
<link rel="stylesheet" href="/player/assets/widget-22748325.css">
<script src="/player/assets/widget-ab572693.js"></script>
<script>
require(["lib/support", "lib/flash-widget"], function(support, flashWidget) {if (support.newWidget) { require(["application"], function(A) {A.start("207ad5d2")}) } else { $(flashWidget.start); }});
</script>
</head>
<body class=" hasGoogleVoiceExt">
<div id="widget" style="height: 100%;"></div>
<div id="sm2-container" class="high_performance swf_error" style="z-index: 10000;"><embed name="sm2movie" id="sm2movie" src="/player/assets/swf-8bc33658/soundmanager2_flash9.swf" quality="high" allowscriptaccess="always" bgcolor="#ffffff" pluginspage="www.macromedia.com/go/getflashplayer" title="JS/Flash audio component (SoundManager 2)" type="application/x-shockwave-flash" wmode="transparent" haspriority="true"></div>
</body>
</html>