Youtube iFrame(使用javascript API)第一次加载,但不加载第二次.为什么?

Youtube iFrame(使用javascript API)第一次加载,但不加载第二次.为什么?,第1张

概述我正在使用带有以下代码的iFrame Youtube API.我使用Ajax调用此视图来呈现它并将其附加到我页面中的div.yt-player中.它在我第一次调用视图时工作,但在我关闭视频(它清空div.yt-player)并点击另一个调用我的视图的链接后,视频根本没有加载(空白).我一直在努力,但仍然不明白为什么会发生这种情况,特别是它第一次运作.任何形式的帮助将不胜感激..谢谢. PS:视图呈 我正在使用带有以下代码的iframe Youtube API.我使用AJAX调用此视图来呈现它并将其附加到我页面中的div.yt-player中.它在我第一次调用视图时工作,但在我关闭视频(它清空div.yt-player)并点击另一个调用我的视图的链接后,视频根本没有加载(空白).我一直在努力,但仍然不明白为什么会发生这种情况,特别是它第一次运作.任何形式的帮助将不胜感激..谢谢.

PS:视图呈现HTML和javascript.

HTML<div ID="player"></div>JavaScript:var tag = document.createElement('script');  tag.src = "https://www.youtube.com/iframe_API";  var firstScriptTag = document.getElementsByTagname('script')[0];  firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);  var player;  function onYouTubeiframeAPIReady() {    player = new YT.Player('player',{      height: '486',wIDth: '864',vIDeoID: '#{@media['youtube_url']}',events: {        'onReady': onPlayerReady,'onStateChange': onPlayerStateChange      },playerVars: {        'showinfo': 0,'iv_load_policy': 3,'color': 'white','fs': 1,'autoplay': 1,'vq': 'hd720'      }    });  }  function onPlayerReady(event) {    event.target.playVIDeo();  }  var done = false;  function onPlayerStateChange(event) {    if (event.data == YT.PlayerState.PLAYING && !done) {      setTimeout(stopVIDeo,6000);      done = true;    }  }  function stopVIDeo() {    player.stopVIDeo();  }
解决方法 只需检查脚本是否已定义.

if(document.getElementByID('iframe_API') === null){            var tag = document.createElement('script');            tag.src = "https://www.youtube.com/iframe_API";            tag.ID = "iframe_API";            var firstScriptTag = document.getElementsByTagname('script')[0];            firstScriptTag.parentNode.insertBefore(tag,firstScriptTag);        }else    runPlayer();function runPlayer(){            var player;            player = new YT.Player(element.children()[0],{                playerVars: {                    autoplay: 1,HTML5: 1,controls: 1,showsearch: 0,showinfo: 0                },height: scope.height,wIDth: scope.wIDth,vIDeoID: scope.vIDeoID,events: {                    onStateChange: function (event) {                        if (event.data == YT.PlayerState.ENDED) {                            scope.$emit('VIDeoEnded');                        }                    }                }            });        }$window.onYouTubeiframeAPIReady = function () {    runPlayer();};
总结

以上是内存溢出为你收集整理的Youtube iFrame(使用javascript API)第一次加载,但不加载第二次.为什么?全部内容,希望文章能够帮你解决Youtube iFrame(使用javascript API)第一次加载,但不加载第二次.为什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1081522.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存