123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
-
- Namespace.register("U.UF.N");
- U.UF.N.goList = {};
- U.UF.N.route = null
- U.UF.N.createNav = function (str, bool) {
- var _obj = U.UF.N.goList;
-
- if (_obj[str] && bool !== true) {
- return _obj[str].context;
- }
- else {
- return new U.UF.N.initNav(str);
- }
- }
- U.UF.N.initNav = function (str) {
-
- this.cb = [];
- this.length = 0;
- this.context = this;
- U.UF.N.goList[str] = this;
- }
- U.UF.N.addEvent = function (callback, str) {
- var _goList = U.UF.N.createNav(str);
- _goList.addHandleEvent(callback);
- callback();
- }
- U.UF.N.addHandleEvent = function (callback) {
- this.cb.splice(this.length, this.cb.length - this.length, callback);
-
- this.length++;
- }
- U.UF.N.handle = function (num) {
- var _callback = this.cb[this.length - num * 2];
-
-
- if (_callback) {
- _callback();
- this.length += ((-num * 2) + 1);
-
-
- }
- }
- U.UF.N.backOff = function (str) {
- U.UF.N.goList[str]["context"].handle(1);
- }
- U.UF.N.goAhead = function (str) {
- U.UF.N.goList[str]["context"].handle(0);
- }
- U.UF.N.getLocation = function (str) {
- return {
- count: U.UF.N.goList[str].cb.length,
- now: U.UF.N.goList[str].length
- }
- }
- U.UF.N.initNav.prototype = {
- addEvent: U.UF.N.addEvent,
- addHandleEvent: U.UF.N.addHandleEvent,
- handle: U.UF.N.handle,
- backOff: U.UF.N.backOff,
- goAhead: U.UF.N.goAhead
- }
- U.UF.N.isActive = false;
- U.UF.N.route = function (fun) {
-
- if (document.all && !document.documentMode) {
-
- setInterval(function () { U.UF.N.changeHashCallBack(fun) }, 100);
- }
- else {
- window.onhashchange = function () { U.UF.N.changeHashCallBack(fun) };
- }
- }
- U.UF.N.addHash = function (hashname) {
- U.UF.N.setHash(hashname);
- }
- U.UF.N.setHash = function (id) {
- U.UF.N.isActive = true;
- location.hash = id;
-
- setTimeout(function () {
-
- U.UF.N.isActive = false;
- }, 10)
- }
- U.UF.N.getHash = function () {
- var _nowhash = location.hash;
- if (!_nowhash) {
- return '';
- }
- else {
- return location.hash;
- }
- }
- U.UF.N.changeHashCallBack = function (fun) {
-
- if (!U.UF.N.isActive) {
- var _newhash = U.UF.N.getHash();
- var _hash = _newhash.substr('1');
- if (_hash != "") {
- fun(_hash);
- }
- else if (_hash == "") {
- window.history.forward(1);
- }
- }
- }
|