Opera和IE7似乎没有为变量赋值

时间:2012-01-21 20:23:01

标签: javascript jquery global-variables youtube-api

昨天我问了一个关于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应该注意哪些常见的怪癖?

1 个答案:

答案 0 :(得分:0)

据我所知,这是Youtube视频播放器中的一个错误。遗憾。

如果你谷歌搜索“onPlayerStateChange opera”,你会发现更多类似的错误报告。