2011-01-20 7 views
0

申し訳ありませんが、ここに状況があります。Youtube APIダイレクトアップロードとリターンURL、おそらくAjaxで?

動画をアップロードするYoutube APIがあります。アップロードされると、http://example.com/?status=200&id=3-1234xyzを返します。

理想的には、これを提出してAjax経由でアップロードしてから、ページにすぐに表示されるIDを返すことができます(最終的に動画のURLまたは埋め込みコードが表示されます)。私はjqueryを使用していますが、私はこのすべてでwhitsの終わりにいます。すべてのヘルプ、リンクなどが大変ありがとうございます!

答えて

2

iframeを使用してください。ファイルのアップロードフォームをiframeに投稿するだけで、読み込みが完了すると($( '#iframe')。ready(...)でこのイベントをキャプチャできます)、その動画IDをキャプチャできます同じドメイン)。

だからあなたのアップロードフォームは、次の線に沿って次のようになります。あなたはiframeを行うために必要なすべてがちょうど親に動画IDを渡す(またはあなたが親からそれを読むことができ

<form action="...?nexturl=IFRAME_URL" method="post" enctype="multipart/form-data" target="uploader"> 
<p>Please select the video you wish to upload to YouTube:</p> 
<input type="file" name="file" value="" /> 
<input type="hidden" name="token" value="" /> 
<button>Upload</button> 
</form> 
<iframe id="uploader" name="uploader" style="display: none; width: 1px; height: 1px; border: none;"></iframe> 

そして、私は)かつてのを好む:

<!DOCTYPE html> 
<html> 
<head> 
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script> 
    <script type="text/javascript"> 
    <!-- 
     var vars = getVars(); 

     $(document).ready(function() 
     { 
      parent.selectVideo(vars[ 'id' ]); 
     }); 

     function getVars() 
     { 
      var vars = []; 
      var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
      var hash; 

      for(var i = 0; i < hashes.length; i++) 
      { 
       hash = hashes[i].split('='); 

       vars.push(hash[0]); 
       vars[hash[0]] = hash[1]; 
      } 

      return vars; 
     } 
    --> 
    </script> 
    <title></title> 
</head> 
<body> 
</body> 

そして仕事:Dは

+0

は、だから私はこれを置きます一緒にそれは完璧に働いていましたが、私にビデオIDを戻して埋め込みました。 parent.selectVideo()が表示されていますが、これを使用する方法がわかりません。あなたの答えは非常にありがとうbtw、私はほぼ100%完成しました! – Tom

+0

更新:Firebugのコンソールを使用して、私はこのエラーを受け取りました:parent.selectVideoは関数ではありません [Break On This Error] parent.selectVideo(vars ['id']); – Tom

+0

それを理解してください:parent。$( "p.youtubeid")。append(document.createTextNode(vars ['id'])); – Tom

関連する問題