(drupal / whitehouse.gov)如何在不重新加载页面的情况下动态加载节点内容?

时间:2011-05-22 01:36:42

标签: ajax drupal jquery drupal-6

想象一下,我定义了视频类节点,它显示了例如标题和描述,以及视频本身。想象一下,我有一块视频预告片,每个预告片链接到一个这样的视频节点。并且想象这个块被添加到显示视频类型节点的任何页面的底部:当用户点击其中一个视频预告片时,该页面将重新加载一个新的视频类型节点。

最后,想象上述所有内容,但无需重新加载整页。

如果你去http://whitehouse.gov/video,你会看到我想要完成的事情。当您单击其中一个视频标签时,该URL将更改为新节点的URL,但不会重新加载整个页面。

仅重新加载显示新节点的页面顶部

我的问题:他们是怎么做到的?如何在不重新加载整个页面的情况下将节点内容加载到页面上的特定div中?

1 个答案:

答案 0 :(得分:3)

你可以使用hook_menu在Drupal中为它自己的处理函数实现MENU_CALLBACK。您可以使用HTML为新视频返回JSON或XML或HTML片段或任何您想要的内容。然后使用JS使用从服务器接收的新内容更新DOM。更新URL也可以使用JS完成。

所以基本上你将使用JS处理客户端的视频点击。 JS会向您的MENU_CALLBACK发出请求,您将从服务器接收您选择实施的任何数据。 JS获取数据并更新DOM。

使用jQuery之类的东西,您可以使用$.get方法并使用success属性更新现代浏览器中的window history