2

JS 関数を使用して YouTube 動画を読み込もうとしています。その意図は、ユーザーが youtube ビデオの URL をコピーして入力フィールドに貼り付けるだけで、JS コードが読み込み部分を処理するようにすることです。残念ながら、js コードがビデオをロードしない理由がわかりません。JSフィドル

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());
        });
        });
​&lt;/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>
4

3 に答える 3

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);
于 2012-07-10T22:23:22.940 に答える
0

jsfiddle はデモで iframe を許可していないため、動作しません。

于 2012-07-10T22:27:46.557 に答える
0

「swfobject」を使用して埋め込みを行う方が良いと思います。jquery を使用して、テキスト ボックスから値を簡単に取得できます。

于 2012-07-10T22:23:41.700 に答える