2011-06-09 55 views
2

我有一個書籤,可以獲取頁面上的元關鍵字。但是,如果沒有meta關鍵字,書籤就會中斷。Javascript - 獲取Meta關鍵字和如果Non不會中斷Bookmarklet

這裏是我當前的JavaScript時,有實際的元關鍵字關鍵字

function docoument_keywords(){ 
    var keywords; 
    var metas = document.getElementsByTagName('meta'); 

    for (var x=0,y=metas.length; x<y; x++) { 
    if (metas[x].name.toLowerCase() == "keywords") { 
     keywords = metas[x]; 
    } 
    } 

    return keywords.content; 
} 

k = document_keywords(); 

$('body').append("<p>" + k + "</p><p>Content</p>"); 

小書籤工作正常。然而,如果沒有的話,它會被打破。你們有任何解決方案?

非常感謝!

回答

4
function document_keywords(){ 
    var keywords = ''; 
    var metas = document.getElementsByTagName('meta'); 
    if (metas) { 
     for (var x=0,y=metas.length; x<y; x++) { 
      if (metas[x].name.toLowerCase() == "keywords") { 
       keywords += metas[x].content; 
      } 
     } 
    } 
    return keywords != '' ? keywords : false; 
} 

k = document_keywords(); 

if (k) { 
    $('body').append("<p>"+k+"</p>"); 
} 

工作例如:JS Fiddle

+0

嗨邁克爾。感謝您的迴應。這個唯一的問題是我有書籤做其他事情。追加內容更多,所以如果沒有關鍵字不打破書籤,這仍然不能解決。 – Chris 2011-06-09 06:01:33

+0

工作示例:http://jsfiddle.net/N2B98/7/ – Chris 2011-06-09 06:06:18

+0

工作解決方案:http://jsfiddle.net/N2B98/21/ – Chris 2011-06-09 06:12:45

2

雖然邁克爾回答你的問題,我只是想指出,既然你似乎已經使用jQuery,這可以很大,更簡單地完成。您的腳本可以總結如下:

$('body').append(
    "<p>" + 
    $.map($('meta[name="keywords"]'), function(metaEl) { return metaEl.content; }) + 
    "</p>" 
); 

// Or, on one line: 

$('body').append("<p>" + $.map($('meta[name="keywords"]'), function(metaEl) { return metaEl.content; }) + "</p>"); 

希望它是有幫助的!

+0

同意,如果您已經包含jQuery,請使用它:) – 2011-06-09 06:24:08