3

在 Google Gadget (xml) 中,我有以下代码。它适用于 Chrome 和 IE,但不适用于 FF。控制台错误为 javascript 调用报告“错误:在 NPObject 上调用方法”.. embed core module ..

<script type="text/javascript">
    var tag = document.createElement('script');
    tag.src = "//www.youtube.com/iframe_api";
  //tag.src = "https://www.youtube.com/iframe_api";  // FireFox compatibility when "HTTPS Everywhere" plugin is installed
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    var done = false;
    var player;

    function onYouTubeIframeAPIReady() {
      var w=window.outerWidth;
      if (w < 561) {
        var pwidth  = "560"; 
        var pheight = "315"; 
      }
      if (w > 559 && w < 640) {
        var pwidth  = "560"; 
        var pheight = "315"; 
      }
      if (w > 639 && w < 853) {
        var pwidth  = "640"; 
        var pheight = "360"; 
      }
      if (w > 852 && w < 930) {
        var pwidth  = "853"; 
        var pheight = "480";
      }
      if (w > 929) {
        var pwidth  = "930";  
        var pheight = "523";  
      }
        player = new YT.Player('player', {
          height: pheight,
          width: pwidth,
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
    }

    function onPlayerReady(evt) {
    //evt.target.playVideo();
      $('#player').css('display','none');
    }

    function onPlayerStateChange(evt) {
    //evt.target.loadVideoById()
      done = true;
    }

    function stopVideo() {
      player.stopVideo();
    }

    function loadVideoVtwo(videoID) {
      $('#displayVideos').css('display','none'); 
      $('#player').fadeIn(5000); 
      $('#backtobrowse').fadeIn(5000);
    //if(player) { player.loadVideoById(videoID); }
    //player.loadVideoById(videoID); 
      player.loadVideoById({'videoId': videoID});
    }

4

1 回答 1

6

我强烈怀疑这是由于display: noneYouTube 播放器 iframe 上的设置所致。请参阅Internet Explorer 和 Firefox 上的 YouTube IFrame API

于 2013-01-08T21:19:59.160 回答