使用javascript获取元数据

时间:2010-09-26 16:16:28

标签: javascript asp-classic

非常感谢您的帮助

我有以下代码:假设从网站获取元标记:

function calculate() {
    // This gets the title:
    g_title = ('' + document.title + '');
    g_title_count = ('' + document.title.split(' ').length + '');
    g_title_length = ('' + document.title.length + '')
    // This checks all the MetaTags:
    g_metadata = document.getElementsByTagName("meta")[i];
    g_keywords = "test";
    if (typeof g_metadata != 'undefined') {
        if (g_metadata) {
            var i = 0;
            for (i = 0; i <= 10; i++) {
                if (g_metadata.name == 'keywords') {
                    g_keywords[i] = (g_metadata.name[i] + g_metadata.content[i]);
                }
            }
        }
    }
}

此值当前返回上面代码中指定的“test”:

document.form1.g_keywords.value = g_keywords

但是我需要它来捕获关键字元标记,描述和标题。

<title>Test 1</title>
<meta name="keywords"content="test2" />
<meta name="description" content="test3" />

然后将其写入表单:

<textarea name="g_keywords" id="g_keywords" cols="80" rows="5" onchange="calculate(this.form1)"></textarea>

目前适用于Title但不能获取<meta name="keywords" content="" >代码

if (g_metadata.name == 'keywords') {
    g_keywords[i] = (g_metadata.name[i] + g_metadata.content[i]);
}

我通过创建上面的内容尝试了它但不确定如何执行它...

请帮忙 - 谢谢

2 个答案:

答案 0 :(得分:6)

// Collect all keywords
g_metadata = document.getElementsByTagName("meta");
g_keywords = []; // should be an array
var len = g_metadata.length;
for (var i = 0; i < len; i++) {
    if (g_metadata[i].name == 'keywords') {
        g_keywords = g_metadata[i].content.split(",");
    }
}​

我认为应该只有一个关键字<meta>标记,并且所有关键字都以逗号分隔。 的 [Demo]

答案 1 :(得分:2)

for循环有点偏离,您尝试在创建之前使用i,这应该是您所追求的:

var g_keywords = [], g_description = "No description found", 
    g_metadata = document.getElementsByTagName("meta")
for (var i=0;i<=g_metadata.length;i++);{
  switch(g_metadata[i].name) {
    case 'keywords':
      g_keywords.push(g_metadata[i].content);
      break;
    case 'description':
      g_description = g_metadata[i].content;
      break;
  }
}

我不确定您使用关键字和元数据后的情况,看起来您想要一个关键字数组和一个描述字符串,这就是上面所做的。它循环遍历<meta>标记,如果name是“关键字”,它会将.content推送到g_keywords数组...如果它是“描述”则设置{{ 1}}到该标记的g_description