Я не использую Cordova, но этот код может вам помочь:
String . prototype . isEmpty = function () { return this . length === 0; };
var browserHistory;
function hash ( name, historyChange )
{
"use strict";
if ( name !== undefined )
{
if ( hash () !== name )
{
if ( ! historyChange ) { browserHistory . add ( name ); }
window . location . hash = name;
}
}
else
{
var newHash = window . location . hash . split ( "#" ) [ 1 ];
return newHash === undefined ? "" : newHash;
}
}
browserHistory =
{
currentIndex : 0,
history : [],
add : function ( name )
{
"use strict";
this . currentIndex = this . currentIndex + 1;
if ( this . history . length - 1 > this . currentIndex ) { this . history . splice ( this . currentIndex ); }
this . history . push ( name );
},
backward : function ()
{
"use strict";
if ( this . currentIndex === 0 ) { return; }
this . currentIndex = this . currentIndex - 1;
this . changeHash ();
},
changeHash : function ()
{
"use strict";
hash ( this . history [ this . currentIndex ], true );
},
forward : function ()
{
"use strict";
if ( this . currentIndex === this . history . length - 1 ) { return; }
this . currentIndex = this . currentIndex + 1;
this . changeHash ();
},
init : function ( name )
{
"use strict";
this . history . push ( name );
}
};
window . onhashchange = function ()
{
"use strict";
if ( hash () . isEmpty () ) { load ( { name: "" } ); }
else { load ( { name: hash () } ); }
};
window . onload = function ()
{
"use strict";
if ( ! hash () . isEmpty () )
{
browserHistory . init ( hash () );
load ( { name: hash () } );
}
else { browserHistory . init ( "" ); }
};
Этот скрипт:
1) Работа с сайтами, использующими хэши ( http(s)://(www.)name.domain/#urlHash ).
Examle:
https://www.example.com/page - default url
https://www.example.com/page#login - login subpage
https://www.example.com/page#images - images subpage
etc.
2) функция "window .onload" проверяет, содержит ли введенный URL хэш, и инициализирует историю браузера с ним или с помощью: "" (пустая строка) - хеш не является моей главной страницей
3) объект "browserHistory" сохраняет историю страницы< br> 4) функция "hash", вызванная без аргументов, возвращает текущий хэш URL, а с параметром "name" изменяет хеш URL
5) При изменении хэша вызывается функция "window .onhashchange"
6) "window .onhashchange" " функция проверки хэша
Если URL не содержит хеш, скрипт загружает страницу по умолчанию.
Если URL содержит хеш, скрипт загружает подстраницу на основе хеша.
7) В функции "загрузить" ( здесь не описано) У меня есть XMLHttpRequest, который вызывает php-файл с аргументом имени и устанавливает html-код основного элемента div, который был возвращен из этого php-файла.
8) Вместо (например):
<a class="a_nice_style" href="https://www.example.com/images.html>Images gallery</a>
Вы можете использовать (например):
<p class="a_nice_style" onclick="hash ( 'images' );">Images gallery</p>
9) Функция с именем: «загрузить» имеет объект в качестве параметра. Этот объект отправляется в файл php (в виде массива «$_GET» или «$_POST»), поэтому вы можете вызвать функцию «загрузить» с настраиваемым объектом, который содержит, например, значения полей входа в систему.
10) «browserHistory» имеет только хэши вашей страницы.
Это будет ваша функция onclick кнопки:
onBackButton: function() { browserHistory . backward (); }
Вы можете изменить функцию «browserHistory .back», чтобы выйти из приложения, заменив: «return;» в этой строке:
if ( this . currentIndex === 0 ) { return; }
с кодом выхода вашего приложения.
person
s77s
schedule
01.07.2014