Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript访问Blogger“搜索描述”元标记_Javascript_Meta Tags_Blogger - Fatal编程技术网

Javascript访问Blogger“搜索描述”元标记

Javascript访问Blogger“搜索描述”元标记,javascript,meta-tags,blogger,Javascript,Meta Tags,Blogger,在我的主博客页面中,我展示了博客上帖子的描述。目前它只是文章顶部的一个片段 Blogger允许指定搜索描述,该描述显示为元标记,例如 <meta content="This is what the post is really about." name="description"> 如果这篇文章有搜索描述,我想显示它而不是代码片段。然而,我一直无法获取这些帖子的搜索描述 function showImgAndDescForPost(postId) { var postT = do

在我的主博客页面中,我展示了博客上帖子的描述。目前它只是文章顶部的一个片段

Blogger允许指定搜索描述,该描述显示为元标记,例如

<meta content="This is what the post is really about." name="description">
如果这篇文章有搜索描述,我想显示它而不是代码片段。然而,我一直无法获取这些帖子的搜索描述

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
}
在JSON文档中,没有任何方式可以访问此文件。所以,我写了一些代码来从帖子中获取meta标签,但是经过几个小时的阅读和实验,我完全失败了。我可以得到博客主页的元标签,但是我不能得到文章的元标签,尽管我可以得到我想要的任何其他标签-比如img检查文章显示元标签,但是我不能得到任何描述或其他

下面是一段代码。请注意,我已经尝试了100个不同的版本,但没有运气,例如meta的变体,查看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是否有一个内置的方法来获取搜索描述吗?否则,有人知道我的代码有什么问题吗

注意:这不是如何使用javascript从元标记获取信息的副本?我尝试了这个问题中提出的每一个解决方案,但都没有成功,因为我根本无法获得帖子的元标签。解析元标记不是问题所在。获取帖子页面的元标记是一个问题[或者更好,如果Blogger有一个API来获取帖子的搜索描述。]


仅供参考:如果您想查看页面,代码适用于andrewsigal.blogspot.com。

好的。经过数小时的研究、实验和劳动,我得出以下结论:如果我错了,请纠正我:

Google已经实现了许多应用于post对象的方法,这些方法没有文档记录,例如innerHTML、textContent、snippet。 谷歌还没有为博文实现一些有用的方法,这些方法都是为博客实现的,例如outerHTML、body、head等。 任何地方都没有描述post完整DOM的文档。谷歌的API文档已经过时/不完整。确定是否实现了给定方法的唯一方法是尝试它。 谷歌已经在博客帖子中添加了搜索描述,但除了帖子本身之外,还没有提供一种程序化的方式来访问博客。搜索描述存储在文章标题中的元标记中,但只有内部HTML可从其他页面(如索引页面)访问,因此无法从其他页面访问。 Google明确建议使用搜索描述,但由于未能在DOM中提供对它的编程访问,从而削弱了它的实用性。 我已经为我的blogger模板创建了一个解决问题的方法,如下所示:我已经创建了自己的xmeta标记,并将其放置在帖子的HTML中。我将搜索描述中的文本放入xmeta标记中。我已经编写了从帖子的innerHTML获取xmeta标记的代码,并在需要搜索描述时使用它的文本

当然,这完全是一种黑客行为。它需要复制信息,将搜索描述放在实际的搜索描述和我的xmeta标记中,并且容易出错,因为如果有人在一个地方更新,而不是在另一个地方更新,复制的文本可能会失去同步


叹气。

可能重复您试图在postT中查找元元素,而不是在文档中。是的,我试图在postid查找的帖子中查找元元素[在一个外部循环中,该循环遍历博客上的所有帖子。]是的,我没有在文档中查找元元素,因为文档是博客的主页。博客主页的描述不是我想展示的。我想显示博客文章的描述。博客文章的描述在博客文章页面的元标记中,但是,我无法访问文章中的元标记。我可以访问文章中的其他标记。这不是如何使用javascript从元标记中获取信息的副本?我尝试了那个问题中提出的每一种解决方案,但没有一种有效,因为我根本无法获得帖子的元标记。纯JavaScript无法在当前页面之外做任何事情。您可以通过AJAX加载其他页面,并尝试执行一些操作。但您最好在服务器端这样做,而不是在前端浪费大量用户机器资源。