2012-07-23 53 views
0

我想在网站上使用MediaElement.js和一切工作伟大的每个浏览器,但IE浏览器,最具体的IE9(我不是太在意IE9以下支持时刻)。我已经动态地填充了我所阅读的内容,可能会在IE中导致问题,但我不确定是否有解决方法。我这样做的原因是因为这是一个投资组合站点,所有项目数据都通过getJSON调用加载,并且一旦加载所有项目就会填充相应的数据并实时创建。有几个视频项目。我已经把代码放到了我的项目之外的一个例子中,这个例子基本上经历了同样的行为。如果我只是在JS中编写HTML和控件,它可以工作,但是当我通过JS创建HTML然后尝试播放时,我会得到错误日志(在代码中创建ME播放器时)。这里是代码:MediaElement.js动态内容不工作在IE9

$(function() { 
      var details = { 
        width: 640, 
        height: 480, 
        src: 'work/television/1' 
       }, 
       $body = $('body'), 
       $vid = $('<video width="' + details.width + '" height="' + details.height + '" preload="none" id="vidPlayer1"></video>'), 
       $mp4 = $('<source src="' + details.src + '.mp4" type="video/mp4" title="mp4">'), 
       $webm = $('<source src="' + details.src + '.webm" type="video/webm" title="webm">'), 
       $ogg = $('<source src="' + details.src + '.ogv" type="video/ogg" title="ogg">'), 
       $flash = $('<object width="' + details.width + '" height="' + details.height + '" type="application/x-shockwave-flash" data="swf/flashmediaelement.swf"><param name="movie" value="swf/flashmediaelement.swf"><param name="flashvars" value="controls=true&file=' + details.src + '.mp4"></object>'), 
       $error = $('<p>The available video formats are not supported by your browser. :(</p>'), 
       $controls = $('<div class="videoControls playBtn"></div>'); 

      $body.append($controls); 

      $vid.append($mp4); 
      $vid.append($webm); 
      $vid.append($ogg); 
      $vid.append($flash); 
      $vid.insertAfter($controls); 

      var vidPlayer = new MediaElementPlayer('#vidPlayer1', { 
       features: [], 
       // mode: 'shim', 
       pluginPath: 'swf/', 
       success: function(mediaElement) { 
        console.log('success', mediaElement); 
       }, 
       error: function() { 
        console.log('Error loading player. Please try again.'); 
       } 
      }); 

      $body.on('click', function(evt) { 
       vidPlayer.play(); 
      }); 
     }); 

任何帮助将非常感激。

回答

0

问题解决了。有兴趣的人士,不得不追加我的合并成一个呼叫所以$ VID成为:

$vid = $('<video width="' + details.width + '" height="' + details.height + '" preload="none" id="vidPlayer-' + row + '-' + slide + '"><source src="' + details.src + '.mp4" type="video/mp4" title="mp4"><source src="' + details.src + '.webm" type="video/webm" title="webm"><source src="' + details.src + '.ogv" type="video/ogg" title="ogg"><p>The available video formats are not supported by your browser. :(</p></video>') 

只是不得不把它们都放在一个声明,IE9的认可正确。这个问题是通过附加的,因为我在做源变量永远不会被追加,因此IE不知道我的视频来源是什么。

希望这可以帮助未来的人。