onYouTubePlayerAPIReady 无法在 Opera 下触发



嵌入式 Youtube 视频不会出现在 Opera 上。

显然,回调的定义晚于 YT api 库的加载时间,但找不到任何解决方法。

目前页面正在通过/player_api js 包含加载 YT api,这仅适用于 Firefox。

尝试通过以下方式加载 YT API

<script type="text/javascript">
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
<script>

但在这种情况下,页面在 Opera 和 Firefox 上都不起作用。

有问题的页面是:http://www.ionpoverty.tv/blog/featured/having-it-all-low-income-women-and-work-inequality/

看起来您包含 js 的方式阻止了它下面的脚本执行。 每个浏览器处理阻塞脚本的方式略有不同,这就是为什么您看到它在一个浏览器中工作而不是另一个浏览器的原因。 继续并将脚本移动到www.youtube.com/iframe_api之后,在定义onYouTubePlayerAPIReady的位置。 我还建议将其更改为onYouTubeIframeAPIReady但两者都应该有效。

您可以做的另一件事是确保加载www.youtube.com/iframe_api并在同一脚本标签中定义"onYouTubeIframeAPIReady"。 因为它是一个单线程环境,所以应该确保在包含其他脚本之前定义 onYouTubeIframeAPIReady。

相关内容

  • 没有找到相关文章

最新更新