嵌入的 Youtube 视频无法在本地播放,在线时很好



当我在页面上嵌入 Youtube 视频并在本地进行测试时,没有任何反应,或者浏览器甚至锁定,具体取决于浏览器。发布页面,在线测试,它工作正常。显然不是一个理想的开发/测试方案。我正在使用来自Youtube的iframe嵌入代码。

这确实是一个跨域安全问题,但我在使用Firebug时没有看到任何错误,也没有找到任何对此的引用,也没有找到任何有类似问题的人的参考。可能只是错过了一些东西,但我被难住了。我不喜欢被难倒...太久了。

在线工作但不能在本地工作的示例,即使这是正文中的唯一代码:

<iframe width="640" height="360" src="//www.youtube.com/embed/INg83kArY4g?rel=0" frameborder="0" allowfullscreen></iframe>

顺便说一句,当我托管在我自己的 Web 服务器(不是本地)上时,在本地嵌入和播放相同的视频没有问题。任何帮助将不胜感激。

文件不会在本地加载的原因是您在定义 src 属性时使用协议相对 URL。当浏览器解析src时,它将在方案(http:或https:)前面附加方案(http:或https:)查看页面的位置。如果页面正在本地查看,您的浏览器将在 URL 前面附加file,这将导致无效的 URL。

您可以通过在src上插入方案来解决此问题,例如

src="http://www.youtube.com/embed/INg83kArY4g?rel=0"  

或者通过在本地服务器上提供该页面。

参考
Paul Irish

尝试将"http:"添加到 src 属性的开头:

<iframe width="640" height="360" src="http://www.youtube.com/embed/INg83kArY4g?rel=0" frameborder="0" allowfullscreen></iframe>

最新更新