2011-05-22 74 views
1

想象一下,我定义了视频类型节点,其中显示了标题和描述以及视频本身。想象一下,我有一个视频剪辑器,每个传情片链接到一个这样的视频节点。想象一下,这个模块被添加到任何显示视频类型节点的页面的底部:当用户点击其中一个视频模式时,页面将重新加载一个新的视频类型节点。(drupal/whitehouse.gov)如何在不重新加载页面的情况下动态加载节点内容?

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

如果你去http://whitehouse.gov/video,你会看到我想要完成的。当您点击其中一个视频模式时,网址将变为新节点的网址,但整个页面不会重新加载。只有页面的顶部显示新节点才会重新加载。

我的问题:他们如何做到这一点?如何将节点内容加载到页面上的特定div中,而无需重新加载整个页面?

+0

fyi,你发布的白宫链接确实会重新载入页面,点击视频预告片 – gpilotino 2011-05-22 20:01:48

回答

3

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

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

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

相关问题