소스 검색

handle node and link IDs with special characters

Nils Schneider 9 년 전
부모
커밋
60d6f8921a
1개의 변경된 파일6개의 추가작업 그리고 10개의 파일을 삭제
  1. 6 10
      lib/router.js

+ 6 - 10
lib/router.js

@@ -9,10 +9,10 @@ define(function () {
 
 
       if (d) {
       if (d) {
         if ("node" in d)
         if ("node" in d)
-          s += "n:" + d.node.nodeinfo.node_id
+          s += "n:" + encodeURIComponent(d.node.nodeinfo.node_id)
 
 
         if ("link" in d)
         if ("link" in d)
-          s += "l:" + linkId(d.link)
+          s += "l:" + encodeURIComponent(linkId(d.link))
       }
       }
 
 
       window.history.pushState(s, undefined, s)
       window.history.pushState(s, undefined, s)
@@ -51,19 +51,15 @@ define(function () {
       var args = s.slice(2).split(":")
       var args = s.slice(2).split(":")
       var id
       var id
 
 
-      if (args[0] === "n") {
-        id = args[1]
+      if (args[1] !== undefined) {
+        id = decodeURIComponent(args[1])
 
 
-        if (id in objects.nodes) {
+        if (args[0] === "n" && id in objects.nodes) {
           gotoNode(objects.nodes[id])
           gotoNode(objects.nodes[id])
           return true
           return true
         }
         }
-      }
-
-      if (args[0] === "l") {
-        id = args[1]
 
 
-        if (id in objects.links) {
+        if (args[0] === "l" && id in objects.links) {
           gotoLink(objects.links[id])
           gotoLink(objects.links[id])
           return true
           return true
         }
         }