草庐IT

javascript - jQuery 历史插件、Google 站点地图和 SEO

coder 2024-02-29 原文

我一直在网上寻找答案,但一直没有得到任何准确的答案。

我有一个 index.php 页面,其中包含两个特定的 DIV:#post-title#post-content,其内容通过 jQuery 函数加载。每次单击链接时都会调用此函数

<a onclick="showPage('page')"></a>

功能:

function showPage(page, fadeInSpeed, fadeOutSpeed) {
 fadeInSpeed = typeof fadeInSpeed !== 'undefined' ? fadeInSpeed : 500;
 fadeOutSpeed = typeof fadeOutSpeed !== 'undefined' ? fadeOutSpeed : 200;
 pageUpper = page.charAt(0).toUpperCase() + page.slice(1);

 var History = window.History;
 History.pushState(null,pageUpper, "index.php?page=" +page);

 $("#post-title").fadeOut(fadeOutSpeed, function() { // Callback del fadeOut..
     $("#post-title").html(page);
     Cufon.refresh(); // I reload Cufon plugin on the div
 }).fadeIn(fadeInSpeed);

 $("#post-content").fadeOut(fadeOutSpeed, function() {
     $("#post-content").load(page + ".php");
 }).fadeIn(fadeInSpeed);
}

这是函数并包含 History.pushState。现在,当我直接转到一个 URL,例如:?page=curriculum,我在 index.php 文件中添加了以下代码以调用上述函数:

<?php
if(isset($_GET['page'])) { // Controlla l'URL e restituisce la pagina corretta.
?>

<script>
$(function() {
    showPage('<? echo htmlentities($_GET['page']); ?>', 1000, 1);
});
</script>

<?
}
?>

一切都完美无缺,但现在我有一个小问题:这是否会违反 SEO? Google 抓取工具会正确索引我的网站吗?如果没有,我该怎么做才能解决这个问题?

我提前谢谢大家,圣诞快乐 :)

最佳答案

如果您希望您的站点可编入索引,则必须确保在禁用 JavaScript 时所有页面内容都可见。例如,这意味着在禁用 JavaScript 的情况下调用 page=curriculum 应该显示类(class)数据。由于内容似乎是通过 XMLHttpRequest 检索的,因此它不起作用。因此,您必须按照 here 所述实现 Google 抓取方案。 .

请注意,如果机器人没有出现在站点中(即如果您始终使用 showPage() 显示内容的功能)。

关于javascript - jQuery 历史插件、Google 站点地图和 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14012910/

有关javascript - jQuery 历史插件、Google 站点地图和 SEO的更多相关文章

  1. ruby - 如何每月在 Heroku 运行一次 Scheduler 插件? - 2

    在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/

  2. ruby-on-rails - 无法使用 Rails 3.2 创建插件? - 2

    我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby​​1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在

  3. jquery - 我的 jquery AJAX POST 请求无需发送 Authenticity Token (Rails) - 2

    rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送

  4. ruby-on-rails - 您希望看到哪些 Rails 插件? - 2

    您认为可以作为插件很好地存在于您的Rails应用程序中必须实现的哪些行为?您过去曾搜索过哪些插件功能但找不到?哪些现有的Rails插件可以改进或扩展,如何改进或扩展? 最佳答案 我希望在管理界面中看到一个引擎插件,它提供了应用程序中所有模型的仪表板摘要,以及可配置的事件图表。 关于ruby-on-rails-您希望看到哪些Rails插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questio

  5. jquery - 如何将 AJAX 变量从 jQuery 传递到他们的 Controller ? - 2

    我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam

  6. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  7. ruby - vagrant 从 github 安装插件 - 2

    我们正在使用Vagrant进行部署,我们最终希望将此集群部署在Rackspace上。vagrant-rackspace插件是一个自然的选择,但它有一些错误,这些错误未包含在最新的0.1.1版本中(notablythatvagrantprovisiondoesn'twork)。我已经在我的personalfork中解决了这个问题通过合并其他人的工作来对存储库进行改造。是否可以从github安装vagrant插件?显而易见的事情没有奏效:[unix]$vagrantplugininstallvagrant-rackspace--plugin-sourcehttps://github.com

  8. ruby-on-rails - 使用 gmaps4rails 动态加载谷歌地图标记 - 2

    如何只加载map边界内的标记gmaps4rails?当然,在平移和/或缩放后加载新的。与此直接相关的是,如何获取map的当前边界和缩放级别? 最佳答案 我是这样做的,我只在用户完成平移或缩放后替换标记,如果您需要不同的行为,请使用不同的事件监听器:在你看来(index.html.erb):{"zoom"=>15,"auto_adjust"=>false,"detect_location"=>true,"center_on_user"=>true}},false,true)%>在View的底部添加:functiongmaps4rail

  9. ruby - Google-api-ruby-client 翻译 API 示例 - 2

    很高兴看到google代码:google-api-ruby-client项目,因为这对我来说意味着Ruby人员可以使用GoogleAPI-s来完善代码。虽然我现在很困惑,因为给出的唯一示例使用Buzz,并且根据我的实验,Google翻译(v2)api的行为必须与google-api-ruby-client中的Buzz完全不同。.我对“Explorer”演示示例很感兴趣——但据我所知,它并不是一个探索器。它所做的只是调用一个Buzz服务,然后浏览它已经知道的关于Buzz服务的事情。对我来说,Explorer应该让您“发现”所公开的服务和方法/功能,而不一定已经知道它们。我很想听听使用这个

  10. ruby - 在 Mechanize 中使用 JavaScript 单击链接 - 2

    我有这个:AccountSummary我想单击该链接,但在使用link_to时出现错误。我试过:bot.click(page.link_with(:href=>/menu_home/))bot.click(page.link_with(:class=>'top_level_active'))bot.click(page.link_with(:href=>/AccountSummary/))我得到的错误是:NoMethodError:nil:NilClass的未定义方法“[]” 最佳答案 那是一个javascript链接。Mechan

随机推荐