Javascript - Получить мета-ключевые слова и если не сломать букмарклет - PullRequest
2 голосов
/ 09 июня 2011

У меня есть букмарклет, который получает мета ключевые слова на странице. Однако, если мета ключевые слова отсутствуют, ломается букмарклет.

Вот мой текущий 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>");

Букмарклет отлично работает, когда в мета-словах действительно есть ключевые слова. Однако его перерыв, когда их нет. У вас, ребята, есть какие-то решения?

Очень ценится!

Ответы [ 2 ]

4 голосов
/ 09 июня 2011
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

2 голосов
/ 09 июня 2011

Хотя Майкл ответил на ваш вопрос, я просто хотел отметить, что, поскольку вы, похоже, уже используете 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>");

Надеюсь, это полезно!

...