在我的主博客页面中,我展示了博客上帖子的描述。目前它只是帖子文本顶部的一个片段。
Blogger允许指定"搜索说明",它显示为元标记,例如
<meta content="This is what the post is really about." name="description">
如果帖子有搜索说明,我想展示一下,而不是代码段。但是,我无法获取帖子的搜索说明。
在JSON文档中,没有任何方法可以访问它。所以,我写了一些代码来从帖子中获取元标记,但经过几个小时的阅读和实验,我完全被挫败了。我可以获取博客主页的元标记,但我无法获取帖子的元标记(虽然我可以获得我想要的任何其他标记 - 例如img)检查帖子显示元标记,但我无法得到任何一个(描述或其他)。
这是一大堆代码。请注意,我已经尝试了100个不同版本,但没有运气,例如&#34; meta&#34;的变体,查看body,innerHTML,outerHTML,header等。还要注意我使用了很多额外的变量,因为我试图弄清楚发生了什么。对于无关的变量,空格等等,请不要太苛刻(虽然我必须承认我更喜欢它。)而且,为了简洁起见,我遗漏了处理从帖子中提取的数据的代码。
function showImgAndDescForPost(postId)
{
var postT = document.getElementById(postId);
imgtag = "";
ifrtag = "";
img = postT.getElementsByTagName("img");
ifr = postT.getElementsByTagName("iframe");
// Get the description meta tag, if any
// BUGBUG: fails to get the meta tags. Why?
var metas = postT.getElementsByTagName("meta");
mLen = metas.length;
var postdescr = "";
for (var iM=0; iM < mLen; iM++)
{
metaattr = metas[iM].getAttribute('name');
postdescr += metaattr + ' + ';
if (metas[iM].getAttribute('name') == 'description')
{
postdescr = metas[iM].getAttribute('content');
break;
}
}
if (ifr.length >= 1)
// deal with iframe
else
// deal with img
if (postdescr.length > 1)
// deal with search description
else
// get snippet of text for description
}
有没有人知道Blogger是否有内置方法来获取搜索说明?否则,任何人都知道我的代码有什么问题?
注意:这不是&#34;我如何从带有javascript的元标记中获取信息?&#34;我尝试了那个问题中提出的每个解决方案,但没有一个能够工作,因为我根本无法获得帖子的元标记。解析元标记不是问题。获取帖子页面的元标记是个问题[或者更好的是,如果Blogger有一个用于获取帖子搜索描述的API。]
fyi:代码适用于andrewsigal.blogspot.com,如果你想看到这些页面。
答案 0 :(得分:0)
行。经过几个小时的研究,实验和劳动,我得出以下结论(如果我错了,请纠正我):
我为我的博客模板创建了一个解决方法,如下所示:我创建了自己的&#34; xmeta&#34;我放在帖子的HTML中的标签。我将搜索描述中的文本放入我的xmeta标签中。我编写了代码来从帖子的innerHTML中获取xmeta标签,并在需要搜索描述时使用其文本。
当然,这完全是黑客攻击。它需要重复信息(将搜索描述放在实际的&#34;搜索描述&#34;以及我的xmeta标签中),并且容易出错,因为如果有人在一个地方更新了重复的文本,那么复制的文本可能会失去同步但不是另一个。
叹息。