当用户输入链接并按下submit时,我想从youtube加载meta标签。我试过以下几种方法:
<div id="container">
<center>
<input type="text" id="url" />
<div><a href="#" id="loadnow">Load youtube video</a></div>
<div id="wrap">
<div id="title"></div>
<div id="info"></div>
<div id="link"></div>
<div id="video"></div>
</div>
</center>
</div>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
$(document).ready(function(){
$('#loadnow').click(function(){
var url = $('#url').val();
$('#wrap').fadeOut(function(){
$('#title').load(url + 'meta[itemprop=name]').attr("content");// second try
$('#info').load('url meta[itemprop=description]'); //first try
$('#link').load('url meta[itemprop=url]');
var videoUrl = $('#video').load('url meta[itemprop=name]');
$('#video').html("<iframe width='560' height='315' src='"+videoUrl+"' frameborder='0' allowfullscreen></iframe>");
$('#wrap').fadeIn();
});
});
});
</script>如何从youtube加载这些元标记并将其输出给用户?我在谷歌上找不到任何关于它的东西。
编辑:它不返回任何内容。
发布于 2012-02-03 02:49:49
所以这几乎是正确的:$('#title').load(url + 'meta[itemprop=name]').attr("content");,变量被组合成字符串的其余部分,但您需要在url变量和字符串的其余部分之间留一个空格,以便jQuery知道meta[itemprop=name]不是URL的一部分:
$('#title').load(url + ' meta[itemprop=name]').attr("content");现在,您将遇到从另一个域请求内容的问题。因此,您需要使用JSONP或创建一个服务器端代理来为您收集远程信息。
更新
我认为对您最有帮助的是设置一个代理来从YouTube网站抓取信息,或者使用更好的您可以使用YouTube API之一:http://code.google.com/apis/youtube/overview.html
发布于 2012-02-03 02:50:04
您尝试通过AJAX访问不同域上的内容。由于same origin policy的原因,这是不可能的。
https://stackoverflow.com/questions/9118043
复制相似问题