Javascript Youtube iFrame Api示例-错误:“0”;JSON是未定义的;?

Javascript Youtube iFrame Api示例-错误:“0”;JSON是未定义的;?,javascript,api,youtube,Javascript,Api,Youtube,我正在尝试新的iframeapi examlpe@ (下面的代码…) 一切都在Chrome、safari上运行,但在firefox 3.0和IE6上有一个错误报告 ->第13行未定义JSON 播放器仍在工作,但javascript完全崩溃 我试图获取json2.js库(http://www.json.org/)脚本放在页面顶部,但没有比这更好的了。 如何在这些旧浏览器上安排此JSON错误 <html> <body> <!-- 1. The <div

我正在尝试新的iframeapi examlpe@ (下面的代码…)

一切都在Chrome、safari上运行,但在firefox 3.0和IE6上有一个错误报告 ->第13行未定义JSON 播放器仍在工作,但javascript完全崩溃

我试图获取json2.js库(http://www.json.org/)脚本放在页面顶部,但没有比这更好的了。 如何在这些旧浏览器上安排此JSON错误

<html>
  <body>
    <!-- 1. The <div> tag will contain the <iframe> (and video player) -->
    <div id="player"></div>
    <script src="js/json2.js"></script>
    <script language="javascript">
      // 2. This code loads the IFrame Player API code asynchronously.
      var tag = document.createElement('script');
      tag.src = "http://www.youtube.com/player_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      // 3. This function creates an <iframe> (and YouTube player)
      //    after the API code downloads.
      var player;
      function onYouTubePlayerAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: 'u1zgFlCw8Aw',
          playerVars: { 'autoplay': 1, 'controls': 0, 'showinfo': 0, 'loop': 1, 'rel' : 0, 'showsearch' : 0, 'enablejsapi' : 1},
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      // 4. The API will call this function when the video player is ready.
      function onPlayerReady(event) {
        event.target.playVideo();
      }


      function onPlayerStateChange(event) {
        //
      }

    </script>
  </body>
</html>

// 2. 此代码异步加载IFrame播放器API代码。
var tag=document.createElement('script');
tag.src=”http://www.youtube.com/player_api";
var firstScriptTag=document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(标记,firstScriptTag);
// 3. 此函数用于创建(和YouTube播放器)
//API代码下载后。
var播放器;
函数onYouTubePlayerAPIReady(){
player=新的YT.player('player'{
高度:“390”,
宽度:“640”,
videoId:'u1zgFlCw8Aw',
PlayerBars:{“自动播放”:1,“控件”:0,“显示信息”:0,“循环”:1,“相关”:0,“显示搜索”:0,“启用JSAPI”:1},
活动:{
“onReady”:onPlayerReady,
“onStateChange”:onPlayerStateChange
}
});
}
// 4. 当视频播放器准备就绪时,API将调用此函数。
函数onPlayerReady(事件){
event.target.playVideo();
}
函数onPlayerStateChange(事件){
//
}

您应该在JSON中使用双引号,因为实际上需要在双引号之间设置字符串。
在高度和宽度处,删除单引号,只写整数,因为它不是字符串。

我也被它咬了一口。Youtube iframe API需要HTML5 postMessage功能,而IE7和其他旧浏览器则没有


刚刚找到这篇关于如何在IE6中修复JSON的老文章