【问题标题】:Fetch meta-tags from url only by jQuery仅通过 jQuery 从 url 获取元标记
【发布时间】:2012-06-23 13:27:44
【问题描述】:

现在有很多 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() 的方向吗?

【问题讨论】:

标签: url dom jquery meta-tags


【解决方案1】:

可以使用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 上的实际元标记。

【讨论】:

    【解决方案2】:

    这似乎是不可能的,因为Cross Origin Policy

    肯定有办法通过结合客户端和服务器端更改来做到这一点。相反,我一直在一个项目中使用这个 API,它可以作为一个简单的 REST API 来获取 url 的开放图形数据。 GET https://opengraph.io/api/1.0/site/<URL encoded site URL> https://opengraph.io/

    它一直作为客户端 JavaScript 解决方案为我工作。

    [注意:我与此产品或其创建者没有任何关系。我是通过网上研究找到的,并在一个项目中使用过。]

    【讨论】:

    • 我刚刚更新了帖子来解释一下——没有关系,只是一个用户。
    • 谢谢,非常感谢!
    【解决方案3】:

    使用过滤器效果很好!

    你可以试试。

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

    【讨论】:

      【解决方案4】:

      使用从 URL 检索到的 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");
      });
      

      【讨论】:

      • 谢谢,但它会将整个页面返回给我,并且其中不包含元标记
      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-05-14
      • 2015-03-14
      • 2023-03-10
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      相关资源
      最近更新 更多