在index.html
我有
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
直接取自Google。
而不是在我的index.js
之后设置了一个函数,我添加了一个
window.onYouTubePlayerAPIReady = this.onYoutubeReadyCallback.bind(this)
但是我并不总是看到onYouTubePlayerAPIReady
函数触发。 (我有一个控制台登录该功能,以查看它何时触发。)
奇怪的是有时它会发射,有时则不然。
我无法理解。有什么原因可能是它有时没有射击而是在解雇其他人?
是否存在某种竞争条件?
加载脚本标记后是否添加了window.onYoutubePlayerAPIReady
?是否有时在脚本标记后加载?发生了什么事,我该怎么做才能解决这个问题?
答案 0 :(得分:1)
我遇到了类似的问题:有时onYouTubePlayerAPIReady
会触发,有时候不会。我必须确保在youtube.com/player_api
函数的定义之后必须包含onYouTubePlayerAPIReady
脚本
请参阅此JSFiddle上的注释(不是我的):http://jsfiddle.net/ramp/4M2YL/
答案 1 :(得分:0)
我必须确保在onYouTubePlayerAPIReady函数的定义之后必须包含youtube.com/player_api脚本
它有效!并且不要忘记这个attrubute:enablejsapi = 1(例如:src =“https://www.youtube.com/embed/bqAM6OwzjBg?rel=0&enablejsapi=1&controls=0&showinfo=0)