【问题标题】:`onReady` not firing`onReady`没有触发
【发布时间】:2013-05-31 14:13:46
【问题描述】:
function onYouTubeIframeAPIReady() {
    alert("onYouTubeIframeAPIReady Fired");     //This works

    player = new YT.Player('player', {
        //height: '390',
        //width: '640',
        videoId: buni_php_params.videoId,
        events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
            }
        });

    }
// 4. The API will call this function when the video player is ready.
function onPlayerReady(event) {
    alert("onPlayerReady Fired");               // This doesn't
    event.target.playVideo();
    }

视频加载并播放。

http://wppagoda.pagodabox.com/?p=1

我为我正在制作的插件安装了标准的 wordpress,它从数据库 (buni_php_params.videoId) 中获取一个 videoID 并播放它。但是 onPlayerReady 事件永远不会被触发……即使onYouTubeIframeAPIReady 被触发了。

【问题讨论】:

  • 好的,这很奇怪,我只是在私人标签中打开它,它可以工作!我不知道为什么或如何...
  • 清除缓存。如果您使用的是 Chrome,则可以在调试器设置中禁用缓存。

标签: javascript youtube-api dom-events


【解决方案1】:

好吧,我不想听起来像个白痴,但您似乎应该在'onReady': onPlayerReady, 中的onPlayerReady 中添加“()”

所以:'onReady': onPlayerReady(), 毕竟你是在调用一个函数。

我可能错了。

【讨论】:

  • 我认为他正在那里进行分配,因此引用该函数,而不是调用它。我也可能错了。
  • 然后我假设他应该将事件传递给函数,但我对 YT API 不是很熟悉。
【解决方案2】:

当我遇到无法加载函数的问题时,我会选择window.myFunction 方法,而不仅仅是myFunction。事实证明,这在浏览器之间也更具可移植性。

【讨论】:

    猜你喜欢
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2016-04-08
    • 2018-05-23
    • 2015-01-28
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多