Разбор url из переменной
<script type="text/javascript">
function parseGetParams() {
var $_GET = {};
var __GET = window.location.search.substring(1).split("&");
for(var i=0; i<__GET.length; i++) {
var getVar = __GET[i].split("=");
$_GET[getVar[0]] = typeof(getVar[1])=="undefined" ? "" : getVar[1];
}
return $_GET;
}
var GETArr = parseGetParams();
var str = JSON.stringify(GETArr);
var peremen = JSON.parse(str);
var price=peremen.price;
var number=peremen.number;
</script>
Этот скрипт разбирает url из браузера. Подскажите как сделать чтобы сделать все тоже самое только из переменной. допустим: var url=xx.ru/index.php?price=12&number=5; |
var __GET = new URL(url).search.substring(1).split("&")
Работает не во всех браузерах, но есть костыль. $_GET, __GET, GETArr - такие имена смотрятся вырвиглазно в JS, неужели нельзя записать их в нормальном виде? Цитата:
getVar[1] || ''. Ну а в-третьих, даже в случаях, когда проверка нужна, ее пишут как getVar[1] === undefined без всяких typeof. Более того, чаще всего проверка на undefined вовсе не требуется. |
Цитата:
|
var __GET = url.substring(url.indexOf('?') + 1).split("&")
|
Упс. Я хотел написать
var __GET = (new URL(url)).search.substring(1).split("&")
Но таки да, это все избыточно. Проще вариант Aetae |
А вобще, такие вещи на стороне сервера разбираются и если надо JSON-ом на страницу пишутся. Во-первых, на сервере проще работать с переменными запроса, а во-вторых, решение окажется рабочим с noscript - мелочь, а приятно. А для кого-то и не мелочь )
|
Фигню написал. Какой нафиг JSON с noscript )))
Всмысле, это подходит, когда нужно например значения инпутов формы проинициализировать. |
я пишу скрипт для imacros (расширение для FF)
|
Спасибо всем, вариант от Aetae подходит, еще раз спасибо
|
Цитата:
|
| Часовой пояс GMT +3, время: 20:52. |