如果我在头部放置一个div并显示:none,而不是使用JavaScript来显示它,这会有效吗?
编辑:
我在AJAX中加载了东西.当我的AJAX更改网站的"主要"部分时,我也想更改元标记.
是的,你可以这样做.
有一些有趣的用例:一些浏览器和插件解析元元素并改变它们对不同值的行为.
Test
所以,它不只是关于搜索引擎.
是的.
例如,设置元描述:
document.querySelector('meta[name="description"]').setAttribute("content", _desc);
你会使用类似的东西(使用jQuery):
$('meta[name=author]').attr('content', 'New Author Name');
但这通常是毫无意义的,因为元标记通常只在加载文档时被抓取,通常不会执行任何JavaScript.
您可以使用例如jQuery调用来更改元数据,如下所示:
$('meta[name=keywords]').attr('content', new_keywords); $('meta[name=description]').attr('content', new_description);
我认为这确实重要,现在,因为谷歌表示,他们将通过指数的Ajax内容#!hashes
和_escaped_fragment_
电话.现在他们可以验证它(甚至自动,无头浏览器,请参阅上面提到的页面上的'创建HTML快照'链接),所以我认为这是硬核SEO人员的方式.
绝对可以使用Javascript来更改页面的元标记.这是一个仅限Javascript的方法:
document.getElementsByTagName('meta')["keywords"].content = "My new page keywords!!"; document.getElementsByTagName('meta')["description"].content = "My new page description!!"; document.title = "My new Document Title!!";
我已经确认Google确实为上述代码编制了这些客户端更改的索引.
元标记是dom的一部分,可以被访问和-i猜测 - 但是搜索引擎(元标记的主要消费者)将不会看到更改,因为javascript将不会被执行.所以,除非你正在改变一个在浏览器中有影响的元标记(刷新想到),这可能没什么用处?
应该可以这样(或使用jQuery $('meta[name=author]').attr("content");
):
Meta Data
$(document).ready(function() { $('meta[property="og:title"]').remove(); $('meta[property="og:description"]').remove(); $('meta[property="og:url"]').remove(); $("head").append(''); $("head").append(''); $("head").append(''); });
var metaTag = document.getElementsByTagName('meta'); for (var i=0; i < metaTag.length; i++) { if (metaTag[i].getAttribute("http-equiv")=='refresh') metaTag[i].content = '666'; if (metaTag[i].getAttribute("name")=='Keywords') metaTag[i].content = 'js, solver'; }