Javascript Youtube未启动的状态更改

Javascript Youtube未启动的状态更改,javascript,youtube-api,youtube-javascript-api,Javascript,Youtube Api,Youtube Javascript Api,这段代码在开发环境中运行良好。在我们的测试服务器上,我们使用AdobeSiteCatalyst进行跟踪,这也绑定了StateChange 有人可以建议如何使多个onStateChange工作,或者我可以将此事件绑定到特定命名空间中,或者任何其他可能的解决方案。您可以将Sitecatalyst绑定到不同的自定义命名事件,然后在onStateChange触发的函数中,可以分派该自定义事件: player = new YT.Player(A, { videoId

这段代码在开发环境中运行良好。在我们的测试服务器上,我们使用AdobeSiteCatalyst进行跟踪,这也绑定了StateChange


有人可以建议如何使多个onStateChange工作,或者我可以将此事件绑定到特定命名空间中,或者任何其他可能的解决方案。

您可以将Sitecatalyst绑定到不同的自定义命名事件,然后在onStateChange触发的函数中,可以分派该自定义事件:

player = new YT.Player(A, {
                    videoId: z.videoId,
                    height: z.height,
                    width: z.width,
                    playerVars: {
                        autoplay: (z.autoplay ? 1 : 0),
                        autohide: (z.autoHide ? 1 : 0),
                        controls: (z.showControls ? 1 : 0),
                        loop: (z.loop ? 1 : 0),
                        rel: (z.showRelated ? 1 : 0),
                        fs: (z.allowFullScreen ? 1 : 0),
                        theme: z.theme,
                        wmode: "transparent"
                    },
                    events: {
                        'onReady': function (event) {alert("onReady")},
                        'onStateChange': function (event) {alert("onChange")}
                    }
                });

感谢您的见解,但问题出在js加载序列上。@Ankur仅供参考,您能解释一下js加载序列的问题吗?我遇到了和你一样的问题are@totalNewbYT js可能需要比预期更多的时间来加载。因此,我所做的是在回调中进行播放器初始化,然后从一个轮询方法调用回调,该方法检查typeof YT!==“undefined”,您可以使用setInterval或clearInterval进行轮询,或者使用您喜欢的任何其他方式。
'onStateChange': function (event) {
   alert("onChange");
   var event = new CustomEvent('siteCatalystOnStateChange', { 'data': event.data }); // here's the event SiteCatalyst will listen for. It's a custom event so you can pass additional parameters; the listener function is passed the object
   elem.dispatchEvent(event); // elem is the element that SiteCatalyst is listening on
}