如何管理共享(冲浪?)中的页面状态历史记录,以便我记住例如哪个 yui 选项卡处于活动状态以及寻呼机在哪个页面上?
我注意到在提交表单后,alfresco share 会执行类似的操作。您将被重定向到与之前完全相同的页面 url。如果任何“ajax 状态”(不知道它们被称为什么)参数在像 #something=asdf 这样的 url 中,你会得到相同的 url。
但是,当使用手动导航(例如在网站页面中移动)时,不会保存这些参数。
这甚至是一个好主意吗?例如,在会话中保存页面状态?
您可以检查在firebug(firefox插件)中提交表单后发送到服务器端的参数,然后您可以使用相同的参数。另外,也许您应该使用yui 历史管理器:
一些页面支持传入的 URL 参数。在这些情况下,使用浏览器历史记录,例如,我们在完整页面元数据视图中编辑元数据,用户被发送回他来自的页面。这是在 javascript 中通过window.history.go(-1)
在表单提交后调用来完成的,但仅在通过 URL 设置/检索参数时才有效。文档库实现了页面特定的 javascript 来设置 URL 并从中解析参数。
我在一些地方 Alfresco 使用首选项服务来永久存储不同页面之间的用户设置。例如,这在文档库中用于“显示文件夹”和“简单/缩略图视图”按钮。以下是文档库 javascript 设置首选项选项的一些示例代码:
var PREFERENCES_DOCLIST = "org.alfresco.share.documentList",
PREF_SHOW_FOLDERS = PREFERENCES_DOCLIST + ".showFolders";
var preferences = new Alfresco.service.Preferences();
this.services.preferences.set(PREF_SHOW_FOLDERS, true);
属性的评估通常在 Share 组件 webscripts 中完成,您可以查看share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\documentlibrary\include\documentlist.lib.js
示例。
在任何情况下,您都必须在浏览器和共享层中深入研究 Alfresco 的 javascript 代码以了解如何实现它。