2012-03-02 13 views
0

画像のURLはhttp://www.bornholmstidende.dk/images/logo.gifです。 文字列にhtmlコードがあるので、document.getMetaを使用することはできません。ここでJavascript - 文字列を抽出できませんか?

は、私が持っているHTMLコードです:

<meta property="og:title" content="Kunst og hverdag" /> 
<meta property="og:description" content="Foredraget er det første af fem, der holdes på Bornholms Kunstmuseum" /> 
<meta property="og:type" content="article" /> 
<meta property="og:url" content="http://www.bornholmstidende.dk/?Id=26502" /> 
<meta property="og:image" content="http://www.bornholmstidende.dk/images/logo.gif" /> 
+0

使用について[.lastIndexOfは、()](https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf) – ManseUK

答えて

1
function getMetaImage(){ 
    var metas = document.getElementsByTagName('meta'); 
    for(var i=0;mLen=metas.length;i<mLen;i++){ 
    if(metas[i].getAttribute('property').toLowerCase() == 'og:image'){ 
     return metas[i].getAttribute('content'); 
    } 
    } 
    return null;//or empty string if you prefer 
} 
+0

ありがとう - ちょうど私が知る必要があったもの! –

+0

@Frederik Witte、文字列中のメタタグがドキュメントにない場合、 'document.getElementsByTagName'がどのように機能しますか? –

3

あなたはjQueryのを使用することができる場合、あなたは、あなたのHTML文字列からDOMフラグメントを作成するためにそれを使用するセレクタでノードをターゲットと属性を取得することができます:

$(your_meta_string).find('meta[property="og:image"').attr('content') 

EDIT:

var match= /<meta property="og:image" content="(.*)" \/>/.exec(your_meta_string) 
if (match) console.log(match[1]) 
:あなたはjQueryのを使用できない場合
は、正規表現を使用します

matchは、見つからなければnullであり、0が全メタタグであり、content属性の値のみである場合、Arrayとなる。

+0

ツール "コンテンツ" の最後の出現を見つける方法私は今使用していますが、jQueryをサポートしていません –

+0

ああ、OK、代わりに正規表現を使用してください。編集された答えを参照してください。 –

関連する問題