2012-03-02 21 views
0

我想獲取圖片url http://www.bornholmstidende.dk/images/logo.gif。 我有一個字符串的HTML代碼,所以我不能使用document.getMetaJavascript - 不能提取字符串?

下面是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 2012-03-02 13:11:21

回答

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

謝謝 - 正是我需要知道的! – 2012-03-02 13:21:51

+0

@Frederik Witte,如果使用'document.getElementsByTagName'解決方案如果在字符串中存在元標記而不是文檔? – 2012-03-02 13:39:27

3

如果你可以使用jQuery,你可以用它來創建你的HTML字符串DOM片段,目標與選擇的節點,並得到屬性:

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

編輯:如果你不能使用jQuery,使用正則表達式:

var match= /<meta property="og:image" content="(.*)" \/>/.exec(your_meta_string) 
if (match) console.log(match[1]) 

match將爲null如果找不到,並且Array如果找到,0是整個元標記,而1僅爲content屬性的值。

+0

工具中最後一次出現我現在正在使用,不支持jQuery – 2012-03-02 13:12:14

+0

哦,好的,用好正則表達式吧。見編輯的答案。 – 2012-03-02 13:25:30