【发布时间】:2012-01-21 20:23:01
【问题描述】:
昨天我问了一个关于running a script once a YouTube video is playing 的问题,在与I figured this out 摔跤很多之后。
现在该解决方案适用于 Firefox、Chrome、Safari、IE9 和 IE8,但由于某种原因,它不适用于 Opera 和 IE7。我几乎没有 Javascript 经验,因此非常感谢任何帮助。
我这样链接JS
<script type='text/javascript' src='http://www.example.ca/wp-includes/js/jquery/jquery.js?ver=1.7.1'></script>
<script type='text/javascript' src='http://www.example.ca/wp-content/plugins/slidedeck-lite-for-wordpress/lib/youtubeapi.js?ver=2011-04-28'></script>
<script type='text/javascript' src='http://www.example.ca/wp-content/plugins/slidedeck-lite-for-wordpress/lib/slidedeck.jquery.lite.js?ver=1.4.5'></script>
在 youtubeapi.js 我运行这个
window.YTplayerState;
function onPlayerStateChange(evt) {
YTplayerState = evt.data;
}
window.YTplayerState; 试图帮助修复 Opera/IE7 问题。然后在 SlideDeck 插件的预先存在的文件中运行这个
var YTplayerState;
var autoPlay = function() {
gotoNext = function() {
if (self.pauseAutoPlay === false) {
if (self.options.cycle === false && self.current == self.slides.length || YTplayerState == 1) {
self.pauseAutoPlay = true;
} else {
self.next();
}
if (YTplayerState == 1) {
self.pauseAutoPlay = true;
}
}
};
setInterval(gotoNext, self.options.autoPlayInterval);
};
大多数浏览器似乎都可以使用,虽然这可能只是运气,但它确实有效。我知道 Opera 中的问题是 YTplayerState 永远不会获取该值,因为如果我使用按键功能手动将值更改为 1,那么它的行为都会按预期进行。
如果不是直接提供的代码,我应该注意 Opera 的任何常见怪癖吗?
【问题讨论】:
标签: javascript jquery global-variables youtube-api