我确实只是复制并粘贴了来自YouTube开发者页面的iframe嵌入式YouTube播放器API参考代码(来自"使用入门"标题下方).唯一的区别是,当状态改变时我添加了一个警报,因为我认为我在onPlayerStateChange函数中做错了.
你可以在http://jsfiddle.net/jesMv/看到jsFiddle .
如上所述,它只是YouTube开发人员页面中添加的代码的精确副本
alert('State Changed')
Run Code Online (Sandbox Code Playgroud)
作为在onPlayerStateChange函数中触发的第一件事.
然而,没有任何事情发生......无论我如何看待这个以及我改变了什么,我都无法让onStateChange做任何事情.
我该如何解决这个问题?
我一直在排除故障,并在数小时内寻找答案,但无济于事.正在逐字使用API文档中的示例代码.其他人发布和说在IE9上运行的示例代码不适合我.我已经确认在html中正确设置了doctype,我没有在CSS中使用display = none隐藏iframe,浏览器模式是IE9,文档模式是IE9标准.我的安全设置配置为中等高.甚至谷歌的示例页面在我的IE9浏览器中对我不起作用.
https://developers.google.com/youtube/youtube_player_demo
当我点击"播放"试图让电影播放时(在上面的链接中),我在IE的脚本调试控制台中得到各种错误.第一个错误如下所示:
SCRIPT5009:'视频'未定义
请帮忙!我的示例代码如下.电影加载,我看到"API已准备就绪"警报,但IE9中没有其他任何事件会触发.我只是不知道我错过了什么!如果我不想很快解决这个问题,我将不得不放弃在我的项目中使用YouTube进行html5视频播放.
<!DOCTYPE html>
<html>
<head><title></title></head>
<body>
<!-- 1. The <iframe> (and video player) will replace this <div> tag. -->
<div id="player"></div>
<script type="text/javascript">
// 2. This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
// This is a protocol-relative URL as described here:
// http://paulirish.com/2010/the-protocol-relative-url/
// If you're testing a local page accessed via a file:/// URL, please set tag.src to
// "https://www.youtube.com/iframe_api" instead.
//tag.src = "//www.youtube.com/iframe_api";
tag.src = "https://www.youtube.com/iframe_api"; …Run Code Online (Sandbox Code Playgroud)