|
@@ -43,28 +43,41 @@ define(function () {
|
|
|
|
|
|
function loadState(s) {
|
|
|
if (!s)
|
|
|
- return
|
|
|
+ return false
|
|
|
|
|
|
if (!s.startsWith("#!"))
|
|
|
- return
|
|
|
+ return false
|
|
|
|
|
|
var args = s.slice(2).split(":")
|
|
|
|
|
|
- if (args.length == 1 && args[0] == "")
|
|
|
- resetView(false)
|
|
|
-
|
|
|
if (args[0] === "n") {
|
|
|
var id = args[1]
|
|
|
|
|
|
- if (id in objects.nodes)
|
|
|
+ if (id in objects.nodes) {
|
|
|
gotoNode(objects.nodes[id])
|
|
|
+ return true
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (args[0] === "l") {
|
|
|
var id = args[1]
|
|
|
|
|
|
- if (id in objects.links)
|
|
|
+ if (id in objects.links) {
|
|
|
gotoLink(objects.links[id])
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return false
|
|
|
+ }
|
|
|
+
|
|
|
+ self.start = function () {
|
|
|
+ if (!loadState(window.location.hash))
|
|
|
+ resetView(false)
|
|
|
+
|
|
|
+ window.onpopstate = function (d) {
|
|
|
+ if (!loadState(d.state))
|
|
|
+ resetView(false)
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -94,8 +107,6 @@ define(function () {
|
|
|
}
|
|
|
self.addTarget = function (d) { targets.push(d) }
|
|
|
|
|
|
- self.loadState = loadState
|
|
|
-
|
|
|
self.setData = function (nodes, links) {
|
|
|
objects.nodes = {}
|
|
|
objects.links = {}
|
|
@@ -109,8 +120,6 @@ define(function () {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- window.onpopstate = function (d) { loadState(d.state) }
|
|
|
-
|
|
|
return self
|
|
|
}
|
|
|
})
|