Переменная с несколькими значениями в URL - PullRequest
1 голос
/ 06 октября 2011

Доброе утро!

Мне нужно создать URL-адрес, содержащий переменную со многими значениями (массив), а также код JavaScript, который может читать эти значения и сохранять в памяти. Пример:

http://(. ..) HTML переменная = value1 |.? Значение2 | value3

Может ли кто-нибудь мне помочь?

Спасибо!

Ответы [ 3 ]

1 голос
/ 06 октября 2011

Поместить значения в строку запроса

function AddValues(someValue) {
        var sep = (window.location.href.indexOf("?") === -1) ? "?" : "&";
        window.location.href = window.location.href + sep + "foo=" + someValue;
    }
    function AddArrayValues() {
    var someValues = ['do', 're', 'mi', 'so', 'la', 'ti', 'do']
        var sep = (window.location.href.indexOf("?") === -1) ? "?" : "&";
        window.location.href = window.location.href + sep + "fooArray=" + someValues;
    }

<input type="button" onclick="AddValues('someValue')" value="Add Value"/>
<input type="button" onclick="AddArrayValues()" value="Add Values" />

Получить значения из queryString

function getUrlVars() {
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

        for (var i = 0; i < hashes.length; i++) {
            hash = hashes[i].split('=');
            vars.push(hash[1]);
            vars[hash[0]] = hash[1];
        }

        alert(vars); 
    }
1 голос
/ 07 октября 2011

Обычная структура строки запроса назначает несколько значений одному ключу:

http://(...).html?variable=value1&variable=value2&variable=value3

Тогда обычные JS-библиотеки, такие как dojo.queryToObject, могут декодировать его в:

{
  variable: ['value1', 'value2', 'value3']
}  
1 голос
/ 06 октября 2011

Как насчет такой вещи:

url может быть: .html? Variable = value1, value2, value3

function getUrlParameter(name) {
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    var regexS = "[\\?&]"+name+"=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.location.href);
    if( results == null ) {
        return "";
    } else {
        return results[1];
    }
}
var res = getUrlParameter("variable").split(",");
alert(res[0]);
alert(res[1]);
alert(res[2]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...