Вчера я задал вопрос о запуске скрипта, когда видео на YouTube воспроизводится , а после много борьбы Я понял это .
Теперь решение работает в 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 никогда не получает значение, потому что, если я вручную изменяю значение на значение с помощью функции нажатия клавиши, то все это ведет себя как ожидалось.
Если это не что-то с напрямую предоставленным кодом, есть ли какие-то общие особенности с Opera, на которые мне следует обратить внимание?