G.Mahendra Ответов: 2

Предыдущая и следующая функциональность в javascript


Всем Привет,
Я готовлю навигационное приложение. В этом приложении я хочу разместить кнопки "предыдущий/следующий" в меню карты. Для этого я написал код во многих формах.
На самом деле во время панорамирования карты координаты в URL-адресе меняются, и URL-адрес не сохраняется в истории браузера.
Пример URL-адреса для уточнения.
http://network/index.html#/map/17.775178,73.791582,10 з

http://network/index.html#/map/16.041423,76.043410,10 з

http://network/index.html#/map/11.298843,99.014032,10 з

HTTP:// в сети/указатель.сообщение:/карте/8.944884,99.075045,10 з

Основываясь на этом типе URL-адресов, я хочу выполнить функцию” предыдущий/следующий".
Для этого я хочу сохранить каждый URL-адрес в массиве и получить URL-адреса на основе индекса. Для этого я сделал следующий код.
<!DOCTYPE html>
< html xmlns="http://www.w3.org/1999/xhtml" >
< голова>
в <название&ГТ;&ЛТ;/название&ГТ;
<сценарий тип="текст/яваскрипт" СРЦ="http://code.jquery.com/jquery.js"&ГТ;&ЛТ;/скрипт>
< script type= "text/javascript">
var URLlist = [];
var ind = 0;
$(документ).готово(функция () {
$("кнопка"). click (функция () {
URLlist[ind] = pageURL;
ind = ind + 1;
alert (pageURL);
});
});
функция гобхист(а) {
var l_ref = ind - 2;
var pageURL2 = URLlist[l_ref];
ind = l_ref + 1;
loadURL(страница 2);
}
функция goFdHist(a) {
ВАР l_ref_2 = Инд;
var pageURL2 = URLlist[l_ref_2];
ind = l_ref_2 + 1;
loadURL(страница 2);
}
функция loadURL(newLocation) {
окно.location = newLocation;
возвращать false;
}
< / script>

< / head>
& lt;тело>
в <тип входного="кнопка" значение="предыдущие" функция onclick="goBkHist(-1)" /&ГТ;
< input type= "button" value= "Next" onclick= "goFdHist(1)" />
< button type= "кнопка" >
Получить URL< / button>
< / body>
< / html>

Нажав на кнопку "Получить URL", я сохраняю URL-адрес в массиве и нажимаю на кнопку "предыдущий/следующий", он переходит к этому URL-адресу.
Я хочу сохранить url, основанные на изменении URL-адреса в адресной строке. Но я не могу получить URL-адреса на основе изменения URL-адреса в адресной строке.
Я решил использовать события мыши для хранения URL-адресов для этого я попробовал событие "onmousedown “для хранения URL-адреса в массиве, но когда я нажимаю на кнопки” предыдущий/следующий", он не работает нормально.
< html xmlns="http://www.w3.org/1999/xhtml" >
< голова>
в <название&ГТ;&ЛТ;/название&ГТ;
<сценарий тип="текст/яваскрипт" СРЦ="http://code.jquery.com/jquery.js"&ГТ;&ЛТ;/скрипт>
< script type= "text/javascript">
var urllist = [];
var ind = 0;
функция whichbutton (событие) {
urllist[ind] = pageURL;
ind = ind + 1;
alert (pageURL);
}
функция гобхист(а) {
var l_ref = ind - 2;
var pageURL2 = urllist[l_ref];
ind = l_ref + 1;
loadUrl(страница 2);
}
функция goFdHist(a) {
ВАР l_ref_2 = Инд;
var pageURL2 = urllist[l_ref_2];
ind = l_ref_2 + 1;
loadUrl(страница 2);
}
функция loadUrl(newLocation) {
окно.location = newLocation;
возвращать false;
}
< / script>

< / head>
& lt;тело>
< div onmousedown= " whichbutton(event)">
в <тип входного="кнопка" значение="назад" функция onclick="goBkHist(-1)" /&ГТ;
< input type= "button" value= "FORWARD" onclick= "goFdHist(1)" />
< button type= "кнопка" >
Получить URL< / button>
< / div>
< / body>
< / html>

Кто-нибудь, пожалуйста, скажите мне возможное решение для выполнения этой функции.
Как я могу хранить URL-адреса без какой-либо производительности событий? Я хочу хранить URL-адреса в массиве в момент изменения url-адреса в адресной строке.

Что я уже пробовал:

< html xmlns="http://www.w3.org/1999/xhtml" >
< голова>
в <название&ГТ;&ЛТ;/название&ГТ;
<сценарий тип="текст/яваскрипт" СРЦ="http://code.jquery.com/jquery.js"&ГТ;&ЛТ;/скрипт>
< script type= "text/javascript">
var urllist = [];
var ind = 0;
функция whichbutton (событие) {
urllist[ind] = pageURL;
ind = ind + 1;
alert (pageURL);
}
функция гобхист(а) {
var l_ref = ind - 2;
var pageURL2 = urllist[l_ref];
ind = l_ref + 1;
loadUrl(страница 2);
}
функция goFdHist(a) {
ВАР l_ref_2 = Инд;
var pageURL2 = urllist[l_ref_2];
ind = l_ref_2 + 1;
loadUrl(страница 2);
}
функция loadUrl(newLocation) {
окно.location = newLocation;
возвращать false;
}
< / script>

< / head>
& lt;тело>
< div onmousedown= " whichbutton(event)">
в <тип входного="кнопка" значение="назад" функция onclick="goBkHist(-1)" /&ГТ;
< input type= "button" value= "FORWARD" onclick= "goFdHist(1)" />
< button type= "кнопка" >
Получить URL< / button>
< / div>
< / body>
< / html>

2 Ответов

Рейтинг:
2

G.Mahendra

Спасибо Ричард

Сначала я попробовал приведенный ниже код для функции"предыдущий и следующий". Но это не соответствует моим требованиям.

&ЛТ;кнопка функция onclick="окна.история.назад()"&ГТ;
Вернуться назад & lt;/кнопка>
&ЛТ;кнопка функция onclick="окна.история.вперед()"&ГТ;
Перейти вперед< / кнопка>

При использовании этого кода скрипта кнопка Назад работает только вперед, а не работает.

После этого мы думаем получить URL-адрес и сохранить его в массиве, как указано выше.

Теперь я попробовал еще один способ получения url-адреса.

< html xmlns="http://www.w3.org/1999/xhtml" >
< голова>
в <название&ГТ;&ЛТ;/название&ГТ;
<сценарий тип="текст/яваскрипт" СРЦ="https://code.jquery.com/jquery-1.10.2.js"&ГТ;&ЛТ;/скрипт>
< script type= "text/javascript">
var urllist = [];
var ind = 0;
функция WhichButton (событие) {
if (event. button == 0) {
$(документ).готово(функция () {
var pageURL = $(location). attr("href");
urllist[ind] = pageURL;
ind = ind + 1;
alert (pageURL);
});
}
}
функция гобхист(а) {
var l_ref = ind - 2;
var pageURL2 = urllist[l_ref];
ind = l_ref + 1;
оповещения(pageURL2);
loadUrl(страница 2);

}
функция goFdHist(a) {
ВАР l_ref_2 = Инд;
var pageURL2 = urllist[l_ref_2];
ind = l_ref_2 + 1;
оповещения(pageURL2);
loadUrl(страница 2);
}
функция loadUrl(newLocation) {
окно.location = newLocation;
возвращать false;
}

< / script>
< / head>
& lt;тело>
<div onmousedown= " WhichButton(event)">
в <тип входного="кнопка" значение="назад" функция onclick="goBkHist(-1)" /&ГТ;
< input type= "button" value= "FORWARD" onclick= "goFdHist(1)" />
< / div>
< / body>
< / html>


На самом деле происходит то, что я пытаюсь получить URL-адрес щелчком мыши-левый клик.В приведенном выше коде я получил URL успешно, но когда я пытаюсь нажать на кнопки также мыши-левое событие срабатывает кнопка событие не срабатывает.

Как я могу решить эту проблему?Если я поместил кнопки в другой div, он работает нормально. Но мое требование - это необходимость размещать кнопки только в одном div, иначе я столкнусь с проблемами с дизайном.

Как избежать события щелчка левой кнопкой мыши во время нажатия кнопки.


Рейтинг:
1

Richard Deeming

Не пытайтесь изобрести собственное решение для управления историей. Воспользуйся встроенный API истории[^].

Если вам нужна поддержка старых браузеров, используйте полифилл[^].