0

YouTube 비디오에서 swfobject.js 및 jquery로로드하여 YouTube rss에서 json 데이터를 가져 오는 두 가지 함수가 있습니다.IE8에서는 특정 JS 함수를 실행하지 않지만 비슷한 코드를 사용하여 다른 함수를 실행합니다.

두 함수 모두 매우 유사한 코드를 사용하여 swfobject.js로 비디오를 포함합니다. IE8을로드하고 다음과 같은 대화 상자가 나타나면 :

Line: 4 
Char: 5 
Error: not implemented 
Code: 0 

내가 맞으면 모든 비디오가로드됩니다. 아니오를 누르면 3 개의 동영상 중 하나만로드됩니다. 나는 왜 그들 중 하나가로드되지만 다른 것들은 실 거하지 않을지 알고 싶다. IE8이 마음에 들지 않는 코드가 있습니까?

내가 네 명중 또는 전혀 여기 경우로드하는 하나의 코드 :

function getVideo(videoID, divName){//Gets yt video for yt category posts 
    var videoURL = videoID; 
    var divID = divName+'-video'; 
    var width = 392; //only change this number 
    var height = Math.floor(width*9/16); 

    var params = { allowScriptAccess: "always" }; 
    var atts = { 'class': 'hmt-ytvideo' }; 
    swfobject.embedSWF("http://www.youtube.com/v/"+videoURL+"?enablejsapi=1&playerapiid=ytplayer&version=3", 
         divID, width, height, "8", null, null, params, atts); 
} 

<script type="text/javascript"> 
    var youtubeID = '<?php echo $urlYoutube; //pass the php var to js var?>'; 
    var divID = '<?php echo $divName; //pass the php var to js var?>'; 
    addLoadEvent(getVideo(youtubeID, divID));//Onload function to output video 
</script> 

내가 네 명중 할 때로드하고 내가 더 쳤을 때로드되지 않는 하나의 코드가 여기에 있습니다 :

function getFirstSideVideo(){ 
    //First sidebar video, represented by the url 'start-index' value 
    $j.getJSON(rssFeedURL, function(data) { 
     $j.each(data.feed.entry, function(i, item) { 
      var updated = item.updated; 
      var urlLink = item['link'][4]['href']; 
      var width = 315; //only change this number 
      var height = width*9/16; 

      //SWF object params 
      var videoURL = urlLink.split('/uploads/')[1]; 
      var params = { allowScriptAccess: "always" }; 
      var atts = { 'class': 'hmt-ytvideo' }; 
      var divID = 'first-sidebar-video'; 

      //Output video with swf object 
      swfobject.embedSWF("http://www.youtube.com/v/"+videoURL+"?enablejsapi=1&playerapiid=ytplayer&version=3", 
           divID, width, height, "8", null, null, params, atts); 
     }); 
    }); 
} 

<script type="text/javascript">//Onloads the function to output the video 
    addLoadEvent(getFirstSideVideo); 
</script> 

답변

1

이 오류는 addLoadEvent 메서드에 함수를 전달하지 않으므로 발생합니다. 아무것도 undefinedaddLoadEvent 함수에 전달되는 함수에서 반환되지 않기 때문에

addLoadEvent(getVideo(youtubeID, divID));

이 코드는 다음 getVideo(youtubeID, divID)을 실행합니다.

IE 8에서 undefinedwindow.onload을 할당하려고하면 오류가 발생합니다. window.load는 addLoadEvent 함수에 의해 내부적으로 수행됩니다.

+0

내 onload 코드를 다음과 같이 작성하기로 결정했습니다. \t \t getFirstSideVideo();} –