gpt4 book ai didi

javascript - iframe 刷新后 OnStateChange 不起作用

转载 作者:行者123 更新时间:2023-12-03 11:59:55 28 4
gpt4 key购买 nike

我有一个 iframe,可以在开始时间和结束时间之间播放视频。当到达结束时间时(case 0),我想加载几乎相同的 URL(在 autoplay=0 处有所不同)。

问题是 OnStateChange 似乎在第一次刷新 iframe 后没有注册任何更改,因此它在第二次观看后不会重新加载,并且第三次从头开始播放视频。如何在到达结束时间时保持视频重新加载?

此外,我还查看了 this question here on Stack Overflow ,但不幸的是无法从中得到任何东西 - 尽管解决方案可能存在?

(也许这看起来很奇怪,但目前这是我需要的解决方案。)

还有——一个有点不相关的问题;我在重命名 id="player" ytplayer 时遇到一些问题。难道就不能改吗?

<html>
<head>
<script type="text/javascript" src="http://www.youtube.com/player_api"> </script>
<script>
var player;
// This function creates an <iframe> (and YouTube player)
// after the API code downloads.
function onYouTubePlayerAPIReady() {
player = new YT.Player('player', {
events: {
'onStateChange': function (event) {
switch (event.data) {
case -1:
console.log ('unstarted');
break;
case 0:
console.log ('ended');
var iframe = document.getElementById('player');
//autoplay=0
iframe.src = "http://www.youtube.com/embed/TINASKjjNfw?&enablejsapi=1&controls=1&showinfo=1&start=20&end=25&rel=0&autoplay=0"
console.log ('player reloaded');
break;
case 1:
console.log ('playing');
break;
case 2:
console.log ('paused');
break;
case 3:
console.log ('buffering');
break;
case 5:
console.log ('video cued');
break;
}
}
}
});
}
</script>
</head>
<body>

<iframe class="video-frame" id="player" width="560" height="315"
src="http://www.youtube.com/embed/TINASKjjNfw?&enablejsapi=1&controls=1&showinfo=1&start=20&end=25&rel=0&autoplay=1"
frameborder="0"></iframe>
</body>
</html>

更新 – 我也尝试过下面的代码,如 from here ,但没有更大的运气。

<script>
function floaded1() {

player1 = new YT.Player('player1', {
events: {
'onStateChange': function (event) {
if (event.data == 0) {
var iframe = document.getElementById('player1');
iframe.src = "http://www.youtube.com/embed/TINASKjjNfw?&enablejsapi=1&controls=1&showinfo=1&start=20&end=25&rel=0&autoplay=0" //autoplay=0
};
}
}
});
} </script>

</head>
<body>

<iframe onload="floaded1()" id="player1" width="240" height="220"
src="http://www.youtube.com/embed/0Bmhjf0rKe8
?enablejsapi=1&rel=0&showinfo=2&iv_load_policy=3&modestbranding=1&start=10&end=15&rel=0&autoplay=1"
frameborder="0" allowfullscreen> </iframe>

最佳答案

我找到了一个有效的解决方案,如果有人需要类似的东西,我会发布该解决方案。

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://www.youtube.com/player_api"> </script>
</head>
<body>
<script>
function onEndReload() {
ytplayer = new YT.Player('ytplayer', {
events: {
'onStateChange': function (event) {
if (event.data == 0) {
var iframe = document.getElementById('ytplayer');
//use iframe.src = iframe.src if you want to reload the url in the iframe, if not – se below;
iframe.src = "http://www.youtube.com/embed/M7lc1UVf-VE?&enablejsapi=1&controls=1&showinfo=1&start=20&end=25&rel=0&autoplay=0"
onEndReload();
console.log ('player reloaded');
};
}
}
});
}
</script>
<iframe onload="onEndReload()" id="ytplayer" name="ytplayeriframe" width="560" height="315" src="http://www.youtube.com/embed/M7lc1UVf-VE?&enablejsapi=1&controls=1&showinfo=1&start=20&end=25&rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>
</body>
</html>

关于javascript - iframe 刷新后 OnStateChange 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25457421/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com