昨天我問了一個關於running a script once a YouTube video is playing和的問題很多的摔跤I figured this out。Opera和IE7似乎沒有給變量賦值
現在該解決方案在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;
是試圖幫助解決歌劇院/ 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永遠不會獲得該值,因爲如果我手動將值更改爲具有按鍵功能的值,那麼它的行爲與預期相同。
如果它不是直接提供的代碼的任何東西,是否有任何與Opera的常見怪癖,我應該注意的?