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

3ho*_*ugh 7 html javascript 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错误

错误:

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
Run Code Online (Sandbox Code Playgroud)

有人对此有任何见解吗?

cli*_*ait 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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

如果您希望它在 IE8 甚至 IE7 上运行,您应该使用旧式嵌入代码。旧式嵌入代码也适用于现代浏览器。