我有一个基于 PHP 和 HTML 的 CMS。在 CMS 的每个页面中,都有一个带有基于 Javascript 的选项卡式对话框的表单,可以在多个 DIV 之间切换。
可以从 CMS 的每个页面打开预览页面以查看所做的更改,然后返回到 CMS。当用户返回时,我希望打开与他们离开预览时相同的标签页。
我当前的方法是在每次用户更改选项卡时更改 cookie(“current_tab”)的值。
onclick='setCookie("current_tab", 5);'
生成选项卡式对话框时,我检查 cookie 并将适当的 DIV 设置为“display: block”。
但是,我需要将 cookie 设置限制为特定的 CMS 页面,而不是所有页面。如果用户更改到不同的页面,则不得预先选择该选项卡。
我当前的方法是为每个页面创建一个 cookie,例如对于页面 ID 10254:
onclick='setCookie("current_tab_10254", 5);'
并且,作为清理的尝试,在呈现页面时删除该 cookie。但显然,这不会清除设置的每个 cookie,因为用户可以选择不返回表单,或导航到不同的页面。我担心系统中的数十个 cookie 会造成困惑。
有人知道如何做到这一点吗?
最佳答案
尝试通过更改 cookie 的“路径”参数来限制 cookie 的可见性。
如果您的应用程序结构不允许这样做,我建议您不要使用这种方法,因为 Cookie 通常会随每个请求一起发送,包括对静态信息(图像、CSS)的请求。
关于javascript - 在cookie中存储多个表单的tab位置 - 如何防止困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1808195/