PHP(?)或jQuery(?)更改元标记的最佳方法?

时间:2009-12-13 20:17:57

标签: php jquery dynamic metatag

在我的网站上,我提供了一个内容幻灯片,我正在使用jquery。因此,用户将单击箭头,将显示下一个div(默认情况下隐藏)。在每个div中,(无论是否显示)都有隐藏的span标记,其中包含用户正在查看的内容的标题以及内容摘要......

    <div id="content" style="display:block">
      <h2>Relevance of Oceanography</h2>
      <p>Some text</p>
      <span class="hiddentitle" style="display:none">Relevance of Oceanography</span>
      <span class="hiddencontent" style="display:none">Some content</span>
    </div>

    <div id="content" style="display:none">
      <h2>Seafloor Spreading and Earthquake Activity</h2>
      <p>Some text</p>
      <span class="hiddentitle" style="display:none">Seafloor Spreading and Earthquake Activity</span>
      <span class="hiddencontent" style="display:none">Some content</span>
    </div>

我要做的是根据当前显示的div的hiddencontent替换或更新标记。由于它存储在一个数据库中,我以为我可以使用php,但后来,我意识到这可能意味着我每次都要重新加载页面,这有点挫败了幻灯片的目的......但是,然后,如果我使用jquery,我担心搜索引擎实际上不会看到元内容,因为它会在页面加载后发生变化......

有没有办法做我想在这里做的事,或者我只是SOL?

3 个答案:

答案 0 :(得分:1)

您不需要隐藏span标记,因为它们已经在隐藏的div元素中。

在抓取,甚至只是可用性方面,我建议有一个索引与直接图像永久链接,然后你不必担心你想用幻灯片做什么,用户可以链接到具体形象。

有两种方法可以解决这个问题,一种方法是使用JavaScript来改变div的可见性。这很简单,只需更改元素的style.display属性。

对于这种方法,有很多预制的jQuery解决方案,例如LightboxJS。以下是它们的汇总列表:

http://bradblogging.com/jquery/9-jquery-slideshow-applications-you-cannot-miss/

另一种方法是进行AJAX调用以检索标记。这限制了初始负载,但可以使图像之间的切换更慢。

答案 1 :(得分:0)

搜索引擎很可能看不到幻灯片放映期间发生的任何变化。您可以考虑创建一个Google Sitemap,其中包含指向幻灯片中每个页面的深层链接。您仍然可以使用jQuery来运行幻灯片,只需通过查询字符串中的参数提供一种在任何时候开始幻灯片放映的方法。

答案 2 :(得分:0)

在使用jQuery加强界面之前,通常不需要进行无javascript的接口实现。这样,对于没有javascript(f.ex searchbots)浏览网站的任何人,你仍然拥有服务器端逻辑。

使用点击事件并阻止默认操作,您可以在下一阶段使用jQuery或本机javascript无缝应用表示界面层。有时您可以使用Ajax重用服务器端逻辑。