Fetch meta-tags from url only by jQuery

2019-02-17 13:11发布

Now a lot of scripts to facebook-style fetching data from url, but all of them work only in combination of jQuery and PHP. Is it possible to fetch url only by jQuery?

I have found here how to get mata-tags of page by:

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

But how correctly insert this query in jQuery.get() to get text values?

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

And if the most popular sites use OpenGraph should I look in the direction of jQuery.getJSON()?

4条回答
地球回转人心会变
2楼-- · 2019-02-17 13:30

It seems like this wouldn't be possible because of the Cross Origin Policy

There are definitely ways of doing it with combination client & server side changes. Instead I've been using this API in a project that works well as a simple REST API to get a url's open graph data. GET https://opengraph.io/api/1.0/site/<URL encoded site URL> https://opengraph.io/

It's been working for me as a client-side javascript only solution.

[NOTE: I have no relationship to this product or its creators. I found it through online research and used it in a project.]

查看更多
冷血范
3楼-- · 2019-02-17 13:30

It's possible using 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)
});

Used apple-itunes-app because it's an actual meta tag on IMDB.

查看更多
倾城 Initia
4楼-- · 2019-02-17 13:37

Use the html data retrieved from URL

$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', 
function(data) {
   $(data).find('meta[name=adescription]').attr("content");
});
查看更多
Explosion°爆炸
5楼-- · 2019-02-17 13:38

With filter works fine!

You can try.

$.get('http://www.guardian.co.uk/culture/2012/jun/21/jimmy-carr-apologises-error-tax', function(data) {
    $(data).filter('meta[name=adescription]').attr("content");
});   
查看更多
登录 后发表回答