仅通过jQuery从url获取元标记

时间:2012-06-21 10:15:35

标签: url dom jquery meta-tags

现在有许多脚本可以从facebook中获取来自url的数据,但它们都只能在jQuery和PHP的组合中运行。是否可以仅通过jQuery获取URL?

我在这里找到了如何获取页面的mata-tags:

$('meta[name=description]').attr("content");
$("meta[property=og:title]").attr("content", document.title);

但是如何在jQuery.get()中正确插入此查询以获取文本值?

$.get('http://www.imdb.com/title/tt1375666/', function(data) {
  $('meta[name=adescription]').attr("content");
});

如果最受欢迎的网站使用OpenGraph,我应该朝着jQuery.getJSON()的方向看看吗?

4 个答案:

答案 0 :(得分:13)

由于Cross Origin Policy

,似乎无法做到这一点

使用组合客户端和组合确实可以做到这一点。服务器端的变化。相反,我一直在一个项目中使用这个API,该项目可以作为一个简单的REST API来获取url的开放图形数据。 GET https://opengraph.io/api/1.0/site/<URL encoded site URL> https://opengraph.io/

作为客户端javascript解决方案,它一直在为我工作。

[注意:我与此产品或其创作者没有任何关系。我通过在线研究找到了它并在项目中使用它。]

答案 1 :(得分:4)

使用从网址

中检索到的html数据
$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', 
function(data) {
   $(data).find('meta[name=adescription]').attr("content");
});

答案 2 :(得分:4)

过滤器工作正常!

你可以试试。

$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', function(data) {
    $(data).filter('meta[name=adescription]').attr("content");
});   

答案 3 :(得分:3)

可以使用CORS Anywhere

$.get("https://cors-anywhere.herokuapp.com/http://www.imdb.com/title/tt1375666/", function(data) {
    var meta = $(data).filter('meta[name="apple-itunes-app"]').attr("content");
    console.log(meta)
});

使用apple-itunes-app,因为它是IMDB上的实际元标记。