2 Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
3 This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
4 The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
5 The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
6 Code distributed by Google as part of the polymer project is also
7 subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9 <link rel=
"import" href=
"../driver.html">
13 var MoreRouting
= scope
.MoreRouting
= scope
.MoreRouting
|| {};
14 MoreRouting
.HashDriver
= HashDriver
;
19 function HashDriver() {
20 MoreRouting
.Driver
.apply(this, arguments
);
24 HashDriver
.prototype = Object
.create(MoreRouting
.Driver
.prototype);
26 // By default, we prefer hashbang; but you can prefix with any string you wish.
27 HashDriver
.prototype.prefix
= '!/';
29 HashDriver
.prototype.urlForParts
= function urlForParts(parts
) {
30 return '#' + MoreRouting
.Driver
.prototype.urlForParts
.call(this, parts
);
33 HashDriver
.prototype.navigateToUrl
= function navigateToUrl(url
) {
34 window
.location
.hash
= url
;
37 HashDriver
.prototype._bindEvents
= function _bindEvents() {
38 window
.addEventListener('hashchange', this._read
.bind(this));
41 HashDriver
.prototype._read
= function _read() {
42 this.setCurrentPath(window
.location
.hash
.substr(1) || this.prefix
);