9

jQueryではこれを行うことができます:

$("meta[property='fb:app_id']").attr("content");

これにより、属性「fb:app_id」を持つ-tagcontentから属性値が得られます。metaproperty

プレーンな古いJavascriptでこれを行うにはどうすればよいですか?

前もって感謝します。:-)

ケネス

4

3 に答える 3

15

JQueryほどエレガントではありません...

var metaTags=document.getElementsByTagName("meta");

var fbAppIdContent = "";
for (var i = 0; i < metaTags.length; i++) {
    if (metaTags[i].getAttribute("property") == "fb:app_id") {
        fbAppIdContent = metaTags[i].getAttribute("content");
        break;
    }
}

console.log(fbAppIdContent);
于 2012-11-19T23:05:43.963 に答える
13
document.querySelector('meta[property~="fb:app_id"][content]').content
于 2016-09-12T20:38:10.917 に答える
3

注:次のproperty属性を使用するものもあります。

<meta property="fb:app_id" content="1234567890">

他の人はname属性を使用しますが:

 <meta name="fb:app_id" content="1234567890">

私は以下を使用して、両方のバリアントから値を取得します。

var appId = (function(c) { for (var a = document.getElementsByTagName("meta"), b = 0;b < a.length;b++) {
  if (c == a[b].name || c == a[b].getAttribute("property")) { return a[b].content; } } return false;
})("fb:app_id");

console.log(appId); //(bool)false if meta tag "fb:app_id" not exists.


同じことが他のすべてのメタタグにも使用できます-クロージャ関数の入力値を変更するだけです(例:からfb:app_iddescription
編集:またはより一般的な関数として:

function getContentByMetaTagName(c) {
  for (var b = document.getElementsByTagName("meta"), a = 0; a < b.length; a++) {
    if (c == b[a].name || c == b[a].getAttribute("property")) { return b[a].content; }
  } return false;
}

console.log(getContentByMetaTagName("og:title"));
于 2013-10-17T04:13:55.427 に答える