Ответ 1
Функция parseUri сделает все, что вам нужно
Edit
В качестве альтернативы вы можете получить DOM для выполнения тяжелой работы для вас и получить доступ к свойствам только что созданного объекта a
для разных частей URL-адреса.
Я использую javascript и хочу взять строку URL, которая у меня есть, и разбить ее на ее компоненты, такие как аргументы хоста, пути и запроса.
Мне нужно сделать это, чтобы перейти к одному из аргументов запроса, который сам является URL-адресом и, таким образом, закодирован в исходной строке URL.
Я чувствую, что в Javascript должен быть простой способ сделать это. Возможно, что-то похожее на это:
var what_I_Want = url("http://www.domain.com?queryArg1=somequeryargument").getQueryArgumentValue("queryArg1");
Функция parseUri сделает все, что вам нужно
Edit
В качестве альтернативы вы можете получить DOM для выполнения тяжелой работы для вас и получить доступ к свойствам только что созданного объекта a
для разных частей URL-адреса.
<script type="text/javascript" language="javascript">
newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname;
</script>
Hope this will help..
Вероятно, это не самый лучший способ сделать это, но простой способ получить строку запроса в JavaScript будет состоять в том, чтобы просто использовать что-то по строкам:
a = "http://www.domain.com?queryArg1=somequeryargument";
query = a.substring(a.indexOf('?')+1);
Затем вы можете разбить запрос на основе и и снова на =, чтобы получить любой необходимый вам параметр.
Извините, если это не очень полезно, так как это немного низкотехнологичный метод: P
EDIT: Просто написал быстрый маленький объект JavaScript, чтобы получить параметры URL-запроса для вас (вроде как) в вашем примере. Проверял его только на хроме, но теоретически он должен работать:)
//Quick and dirty query Getter object.
function urlQueryGetter(url){
//array to store params
var qParam = new Array();
//function to get param
this.getParam = function(x){
return qParam[x];
}
//parse url
query = url.substring(url.indexOf('?')+1);
query_items = query.split('&');
for(i=0; i<query_items.length;i++){
s = query_items[i].split('=');
qParam[s[0]] = s[1];
}
}
//Useage
var bla = new urlQueryGetter("http://www.domain.com?queryArg1=somequeryargument&test=cheese");
alert(bla.getParam('test'));
В javascript вы можете сделать это, используя split() для параметров и используя объект местоположения для протокола и домена, как предположил Карл
Также вы можете использовать parseUri, как предложил Tak
Существует также плагин jQuery, который упрощает парсинг, если вы уже используете jQuery в своем проекте: https://github.com/allmarkedup/jQuery-URL-Parser#readme
Пример:
$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue'