好的,这是情况。
我有Youtube API正在上传视频。上传后,它会返回http://example.com/?status=200&id=3-1234xyz。
理想情况下,我希望通过Ajax提交并上传,然后将ID返回到页面上立即显示(最终将显示URL或嵌入视频代码)。我正在使用jquery,但是我的所有这些都是我的结果。任何和所有帮助,链接等都非常感谢!
答案 0 :(得分:2)
使用iframe。您只需将文件上传表单发布到iframe中,然后完成加载(您可以使用$('#iframe')捕获此事件.ready(...))然后您可以捕获视频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>
然后您所有的iframe需要做的只是将视频ID传递给父级(或者您可以从父级读取它,但我更喜欢前者):
<!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