我使用
Javascript解决方案异步加载youtube播放器API.
当滚动到其位置时,整个脚本应该播放视频.
它适用于所有浏览器以及IE(11),但有时在IE中我在开发人员工具中遇到错误:SCRIPT445(对象不支持此操作).
当滚动到其位置时,整个脚本应该播放视频.
它适用于所有浏览器以及IE(11),但有时在IE中我在开发人员工具中遇到错误:SCRIPT445(对象不支持此操作).
Youtube播放器仍然有效,但它似乎会崩溃其他脚本.我环顾网络,也在Stackoverflow上.似乎有其他人有类似的问题,但他们太具体了.也许有人可以帮我这个.以下是产生问题的代码部分:
var yt_int,yt_players={},initYT = function() { $(".ytplayer").each(function() { yt_players[this.id] = new YT.Player(this.id); <-- Error line }); }; $.getScript("//www.youtube.com/player_api",function() { yt_int = setInterval(function(){ if(typeof YT === "object"){ initYT(); clearInterval(yt_int); } },500); });
解决方法
在评估整个脚本之前,IE中存在竞争条件,即触发脚本加载器回调.通过使用setTimeout(initYT,0),您将允许脚本在触发初始化函数之前完成评估.很高兴它有效!