если у window.location.href есть «sometext» внутри - сделайте это - PullRequest
1 голос
/ 02 июня 2011

В настоящее время работает над чем-то, что использует ajax для некоторой нумерации страниц.Что я хочу сделать, это добавить что-то вроде referal = 3 в конец некоторых ссылок, а затем, когда они перейдут по этой ссылке, я вставлю кнопку «Назад» с расположением окна, например:

Пользователь используетajax pagination, перейдите на страницу 3 Я добавлю? ref = 3 в конец ссылки или что-то в этом роде:

http://foo.com/somepage/?ref=3

(не уверен, что этодругой способ сделать это)

Затем пользователь нажимает эту ссылку, и я добавлю кнопку «Назад» на этой странице с этой ссылкой.

Поэтому, когда они возвращаются на домашнюю страницу, используясгенерированная кнопка window.location.href будет иметь вид:

http://foo.com?ref=3

Идея состоит в том, что когда они нажимают эту кнопку назад, пагинация ajax загружается на страницу 3.

Я не уверен, как еще это объяснить, но кто-нибудь знает, как мне поступить с условным оператором, зависящим от window.location.href?

Ответы [ 3 ]

3 голосов
/ 02 июня 2011

Чтобы найти, если URL содержит некоторую строку:

if (document.location.href.search("ref=3")!=-1){
 alert('got ref=3'); 
}
1 голос
/ 02 июня 2011

Вы можете использовать эту функцию для получения частей строки запроса:

function getQueryString(variable){
    // Grab the query string part of the URL (everything after the ?)
    var query = window.location.search.substring(1);

    // If you don't specify which value you want, return the whole thing
    if(!variable) return query;

    // Split the query string to key=value pairs into an array
    var vars = query.split('&');

    // Loop through them to find the one we're looking for
    for (var i = 0; i < vars.length; i++){
        // Split key and value
        var pair = vars[i].split('=');

        // If the key matches our parameter, return the value
        if (pair[0] == variable){
            return pair[1];
        }
    }
    // If not found, return empty string
    return '';
}

Тогда вы можете получить значение в виде строки:

var value = getQueryString('ref');

// Conditional code if it is a certain value, do something
if(value === '3'){
    // Do something
}

Вы также можете получить его как число, используя parseInt():

var value = parseInt(getQueryString('ref'), 10);

if(value === 3){
    // Do something
}
0 голосов
/ 02 июня 2011

Я не уверен, что полностью понимаю, что вы хотите сделать, но звучит так, как будто вы хотите посмотреть, используя свойство location.hash.

С помощью плагина jQuery, такого как hashchange , вы можете добавить вызовы ajax в историю браузера.Также все страницы будут добавлены в закладки.Это довольно обширная тема, но приведенная мною ссылка поможет вам начать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...