2012-07-10 1 views
2

JS 기능을 사용하여 YouTube 동영상을로드하려고합니다. 사용자가 단순히 YouTube 비디오 URL을 복사하여 입력 필드에 붙여 넣은 다음 내 JS 코드가로드 부분을 처리하게하려는 것입니다. 불행히도 js 코드가 anyvideo를로드하지 않는 이유를 모르겠습니다. JS FIDDLEJS/Jquery 기능을 사용하여 URL별로 YouTube 동영상을로드하십시오.

JS :

<script> 
     $(document).ready(function(){ 
     var last_cnad_text_1 = ''; 
     var options_cnad_text_1 = { 
     embedMethod:'fill', 
     maxWidth:320, 
     maxHeight: 320 
     }; 
     function loadVideo() 
     { 
     val = $('#cnad_text_1').val(); 
     if (val != '' && val != last_cnad_text_1) 
     { 
     last_cnad_text_1 = val; 
     $("#embed_cnad_text_1").oembed(val,options_cnad_text_1); 
     } 
     } 
     $(function(){ 
     $('#cnad_text_1').keydown(loadVideo()); 
     $('#cnad_text_1').click(loadVideo()); 
     $('#cnad_text_1').change(loadVideo()); 
     }); 
     }); 
​</script> 

HTML :

<html> 

<div class="col1">Insert a youtube video Link</div> 
    <div class="col2"> 
    <input id="cnad_text_1" type="text" name="cnad[text_1]"> 
    <div id="embed_cnad_text_1"> 
    <iframe></iframe> 
    </div> 
</div>​ 

</html> 

답변

1

$('#cnad_text_1').keydown(loadVideo()); 잘못. 이벤트에 대한 콜백으로 할당하는 대신 즉시 함수를 호출하고 있습니다. ()를 제거하고 작동합니다 :

$('#cnad_text_1').keydown(loadVideo); 
$('#cnad_text_1').click(loadVideo); 
$('#cnad_text_1').change(loadVideo); 

은 실제로 당신이 더를 축소 할 수 있습니다 :

$('#cnad_text_1').on('keydown click change', loadVideo); 
0

당신은 내가 생각하는 당신을 위해 삽입을 수행하는 '데 SWFObject를'사용하는 것이 더 낫다. jquery를 사용하여 텍스트 상자에서 값을 간단히 가져올 수 있습니다.

0

jsfiddle은 iframe을 데모에 포함시키지 않으므로 작동하지 않습니다.

관련 문제