#javascript #html
#javascript #HTML
Вопрос:
Хорошо, я новичок в JavaScript и нуждаюсь в некоторой помощи здесь. Работа с кнопками вперед / назад на странице. По сути, URL-адрес выглядит следующим образом http://webaddress.com/details?id=27
Итак, мои две функции предназначены для извлечения URL-адреса и пересылки на ту же страницу, уменьшая или увеличивая идентификатор сведений по мере необходимости при нажатии одной из кнопок. Например, когда кто-то нажимает на следующую кнопку, id=28
отображается; и если предыдущий нажат, id=26
отображается.
Я думаю, что это что-то вроде substring , я видел, как это делалось где-то раньше, но не уверен, как это делается.
Мне нужна идея о том, как к этому подойти. Любая помощь будет оценена.
Обновление: я использовал приведенный ниже код @gion_13, но, похоже, я чего-то не понимаю. Похоже, это не работает. Любая другая помощь будет оценена.
Ответ №1:
Вы можете использовать location.href
для получения или установки URL-адреса.
http://developer.mozilla.org/en/window .Расположение
Используется exec
для извлечения идентификатора.
extracted_id = /id=([0-9] )$/.exec(location.href)[1]
http://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/RegExp/exec
Комментарии:
1. Спасибо за этот совет, но, похоже, ваш подход предполагает, что пользователь находится в браузере Mozilla.
2. Mozilla просто размещает его — он не зависит от браузера (если не указано иное).
Ответ №2:
- Прочитайте URL-адрес как
var url = document.location.href
- Используйте регулярное выражение или indexOf «=» или document.location.search, чтобы найти текущую страницу без
- Синтаксический анализ как int и /- номер страницы
- перестроить URL-адрес
- document.location.replace(newurl)
Комментарии:
1. Я собирался ответить на это, но ты опередил меня на 2 минуты! 😉
2. NP, попробуй в следующий раз и будь быстрее 🙂
Ответ №3:
function parseUrl(){
if(location.href.indexOf('?') == -1)
return null;
var aux = location.href.split('?');
var result = {
'href' : aux[0],
'params' : {}
};
var p = aux[1].split('amp;');
for(var i=0,l=p.length;i )
{
var kv = p[i].split('=');
params[kv[0]] = kv[1];
}
return resu<
}
function reconstructUrl(obj){
if(!obj)
return location;
var url = obj.href '?';
for(var i in obj.params)
url = i '=' obj.params[i] 'amp;';
return encodeURI(url);
}
function getNextUrl(){
var urlObj = parseUrl();
urlObj.id ;
return reconstructUrl(urlObj);
}
function getPrevUrl(){
var urlObj = parseUrl();
urlObj.id--;
return reconstructUrl(urlObj);
}
Комментарии:
1. Спасибо миллион за этот код. Я ценю это — я только что добавил <тип ввода =»отправить» onclick=»getPrevUrl()» значение =»Предыдущий» /> и ничего не сработало. Есть ли что-то, чего мне не хватает. Еще раз спасибо за вашу помощь.
2. Хотя код не работал для меня, он дал мне пищу для размышлений и адаптации к тому, что мне нужно. Еще раз спасибо.
3. ну, я не тестировал это, но основная идея есть. Для того, чтобы это работало в вашем случае, вы должны были написать что-то вроде этого :
<input type="submit" onclick="window.location = getPrevUrl();" value="Previous" />
Ответ №4:
window.location
Объект содержит необходимую вам информацию об URL-адресе. Вы можете проанализировать его с помощью регулярного выражения. Вот некоторые ссылки:
Комментарии:
1. окно. местоположение не возвращает параметры GET. Вам нужно использовать document.URL
2. Вы должны использовать весь объект location.
window.location.search
имеет параметры запроса.
Ответ №5:
Чтобы получить доступ к URL-адресу страницы, используйте document .URL, например:
document.write(document.URL);
Затем вы можете изменить URL-адрес и открыть новый URL-адрес.
Множество подсказок и советов см. в примерах JavaScript HTML DOM.
Ответ №6:
Вы можете сделать это без Javascript, если хотите. Я думаю, что это более эффективно с PHP, потому что это будет работать, даже если у какого-то пользователя отключен Javascript.
Вы можете попробовать получить идентификатор следующим образом:
<?php $my_id = $_GET['id']; ?>
Комментарии:
1. Спасибо, но вы прочитали вопрос? Ваш код выглядит довольно тривиально.