用于页面中特定操作的网址

时间:2016-04-27 01:44:33

标签: javascript jquery jsp

我有像这样的页面流

  1. 用户登陆着陆页。
  2. 然后选择一些选择框,然后点击搜索。
  3. 然后使用所有搜索条件和显示的搜索结果进入新页面。
  4. 在此页面中,我们左侧部分显示所有结果,当用户点击任何结果项时,我们会在右侧显示结果详情。
  5. 这一切都很好。但是现在客户想要一个开放部分的可收藏链接,即当使用点击左侧div时,右侧div应该打开,这应该有正确的URL,以便可以共享。

    我如何实现这一点,为开放的div制作网址?我试过#id = 1002一切正常,但是当用户复制url和paste时,java无法获取哈希标记。

2 个答案:

答案 0 :(得分:0)

这是其中之一。 - 编码并映射URL,然后在javascript中处理它们。

让我解释一下。

比如说,你有2个div - div1div2

(1)编纂并创建一个映射逻辑/约定---

将div的状态映射到URLS -

div1打开div2关闭 - > URL = mysite.com/page/d1-open/d2-close

div1打开div2打开 - > URL = mysite.com/page/d1-open/d2-open

div1关闭div2打开 - > URL = mysite.com/page/d1-close/d2-open

div1关闭div2关闭 - > URL = mysite.com/page/d1-close/d2-close

等等

(2)处理服务器上的URL ---只需发送mysite.com/page的输出,忽略其余部分

(3)处理客户端的URL ---

类似这样的事情

    function handleURL() {
    var myURL = window.location.href;   
    var urlArray = myURL.split("/");
    //examine the urlArray and decode the URL code after mysite.com/page/
    // and open or close your divs accordingly
    // eg: if the url-part after page/ is div1-open/div2-close 
    // i.e urlArray[2]=div1-open and urlArray[3]=div2-close 
    // you would know what to do accordingly...
    }

我解释过你的例子,几乎不可扩展。您必须为2^n的每个组合手动设置n divs映射。但是,如果真的想让它可扩展,你也可以自动化编码。

您可以为页面的每个状态指定唯一ID。

例如:mysite.com/mypage/page-config-id=abcd1

然后你问服务器div configuration 即哪个div打开哪些div关闭等作为JSON。然后你可以使用Javascript来解析JSON并重新排列页面。

您可以将div config --> page-config-id键值对存储在数据库或文件或noSQL或其他任何服务器上的键值数据库中。

答案 1 :(得分:0)

您需要网址才能正确显示内容。

您必须提供链接到搜索资源的uri路由器。

如果您的搜索资源是用户个人资料,那么所有用户都应该可以通过/ user /:userid这样的uri访问。

假设搜索是针对名为 z 的人。您的左侧div将包含名称为 z 的所有个人资料。单击任何结果项将在详细视图中打开该人,但是应使用location属性将URL更改为/ user / z1。

此外,您还需要检查搜索资源的用户是否具有访问级别才能查看该内容。