YouTube iframe嵌入在Internet Explorer 8中抛出JavaScript错误

时间:2013-04-15 19:48:26

标签: javascript html youtube youtube-api

在Internet Explorer 8中查看时,似乎简单的YouTube iframe嵌入会抛出JavaScript错误。希望有人能找到我做错的事 - 除非这是一个新错误?

如何重现:

  1. 打开Internet Explorer 8并点击F12以显示开发人员工具
  2. 切换到“控制台”标签以观看JavaScript控制台
  3. 访问http://ehough.com/ie8-youtube.html,这是一个直接从youtube.com复制的iframe嵌入,并查看JavaScript错误
  4. 错误:

    SCRIPT5007: Unable to get value of the property 'getActivated': object is null or undefined 
    ie8-youtube.html, line 28 character 128
    
    SCRIPT5020: Expected ')' in regular expression 
    html5player-vflR_cX32.js, line 675 character 708
    
    SCRIPT438: Object doesn't support property or method 'SetReturnValue' 
    www-embed-vflqDUnF8.js, line 66 character 56
    
    SCRIPT438: Object doesn't support property or method 'SetReturnValue' 
    uVlr4eYkNjY, line 1 character 1
    

    有人对此有任何见解吗?

1 个答案:

答案 0 :(得分:1)

IE8及以下版本不支持很多现代版本。但我很确定它适用于IE9及以上版本。我在IE10上测试过(我的计算机上没有IE8),它运行得很好。

在Youtube嵌入功能上,曾经有一个单选按钮,上面写着“使用旧的嵌入代码”。这是使用Flash Player而不是Iframe的旧式嵌入代码。

但是,Youtube在2014年中期取消了此选项。

还有一种方法可以获得旧式的嵌入代码。下面的代码段显示了一个通用的旧式嵌入代码。

<object width="560" height="315"><param name="movie" 
value="http://www.youtube.com/v/ [your Youtube video URL here] ?version=3&hl=en_US"></param><param
name="allowFullScreen" value="true"></param><param 
name="allowscriptaccess" value="always"></param><embed 
src="http://www.youtube.com/v/ [your Youtube video URL here] ?version=3&hl=en_US" 
type="application/x-shockwave-flash" width="560" height="315" 
allowscriptaccess="always" 
allowfullscreen="true"></embed></object>

您是否看到“[此处的Youtube视频网址]”文字?将该占位符替换为您在Youtube视频网址末尾看到的随机内容。示例如下所示。

https://youtube.com/watch?v=NUjbKaUcxeA

要在上面嵌入视频网址,您应该将“[此处的Youtube视频网址]”替换为“NUjbKaUcxeA”。

如果你想让它在IE8,甚至IE7上工作,你应该使用旧式的嵌入代码。旧式嵌入代码也适用于现代浏览器。