Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Другие темы раздела
JavaScript В html из файла https://www.cyberforum.ru/ javascript/ thread5098.html
Народ возник вопрос. мне нада чтоб html страница с помощью скрипта (лутше ява) в одно место подгружала из файла текст и он распознавался страницей как html код
Диалоговое окно с кнопками "да" и "нет" JavaScript
Подскажите как сделать, когда жмешь на картинку, что бы выходило диалоговое окно с кнопкоми да и нет, подтверждение действия.
JavaScript Исходник сапера на javascript
Помогите пожалуйста найти исходник игры сапер на javascript. Очень нужно. Заранее благодарю
JavaScript Нужен учебник по Js Дайте пожалуста Полный путёвый учебник по JavaScript со словарём со всеми функциями примерами и наворотами под несколько браузеров !!!!! Doberman@xaker.ru или ссылку!! Заранее огромное спасибо! https://www.cyberforum.ru/ javascript/ thread4236.html
JavaScript swfobject.js как его писать или дайте учебник(на русском) https://www.cyberforum.ru/ javascript/ thread4222.html
Помогите разобраться в сценарии с расшерение js, в частности хочу сделать менюшку что бы она отображалась когдта в браузере отключен запуск активного содержания окна и отоброжение рисунков Заранее...
JavaScript вопрос javascript
как задать исполнение скрипта в определенной ячейке таблицы текущего документа(сменяемый текст)...
Изменение размера окна -> изменение размера картинки JavaScript
Есть картинка на Homepage, как сделать так, что бы при изменении окна браузера размер картинки автоматически изменялся соответственно размерам окна.
JavaScript Ссылка на дочернее окно (javascript) Привет всем. Неподскажете как получить ссылку на дочернее окно из родительского (при отсуствие ссылки 'widow.open()') ? Проблема в следующем. Есть N-ное количество всплывающих окон открытых одно... https://www.cyberforum.ru/ javascript/ thread4105.html
JavaScript Технология AJAX или опять JS? https://www.cyberforum.ru/ javascript/ thread3489.html
Необходимо добавить на страницу таблицу с данными из текстового файла вида: 0|data1|data2|data3... 1|data1|... ... n|data1|... Мне нужно загнать все эти данные в двумерный массив. В PHP это...
JavaScript Ловля Enter'a c помощью удочки Javascript Два элемента формы (text,password). Юзер активировал text и ввёл, допустим, логин. Далее нужно при нажатии на Enter активировать пароль. https://www.cyberforum.ru/ javascript/ thread3331.html
Модератор
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
27.03.2016, 21:10 0

Обмен готовыми решениями

27.03.2016, 21:10. Просмотров 64934. Ответов 66
Метки (Все метки)

Ответ


Мало ли может кому пригодиться, небольшая библиотека, для упрощенной работы с query string

Тут git репозиторий с тестами и прочими штуками

Полный код:
Кликните здесь для просмотра всего текста

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
var URLQueryBuilder = (function () {
    /**
    *   Merge two objects
    */
    function mergeObj(obj1, obj2) {
        var result = {};
        for(var i in obj1) result[i] = obj1[i];
        for(var j in obj2) result[j] = obj2[j];
 
        return result;
    }
    /**
    *   Parse queries
    *   @param {Object|string} queries
    *   @return {Object} parsed queries
    */
    function parseQueries (queries) {
        var parsedQueries = {};
 
        if(typeof queries === "string") {
            var queriesArray = queries.split("&");
            for(var i = 0; i < queriesArray.length; i++) {
                var query = queriesArray[i].split("=");
                // check to valud data
                if(query.length == 2)
                    parsedQueries[query[0]] = query[1];
            }       
        } else if(typeof (queries === "object") && queries) { // typeof null/undefined === "object"
            parsedQueries = queries; 
        }
 
        return parsedQueries;
    }
    /**
    *   Parse queries from inital url string
    *   @param {string} url
    */
    function parseQueriesFromUrl(url) {
        var queries = {};
 
        if(typeof url === 'string') {
            queries = url.split("?")[1];
            queries = parseQueries(queries);
        }
 
        return queries;
    }
    /**
    *   get a clear url without query
    *   @param {string} url
    *   @return {string} url without query string
    */
    function getClearUrl(url) {
        var clearedUrl = '';
 
        if(typeof url === 'string')
            clearedUrl = url.split("?")[0];
 
        return clearedUrl;
    }
 
 
    /**
    *   @constructor
    *   @param {string} url
    *   @param {string|object|undefined} queries
    */
    function URLQueryBuilder (url, queries) {
        this.url = getClearUrl(url);
        this.queries = parseQueriesFromUrl(url);
 
        var queriesFromParam = parseQueries(queries);
        this.queries = mergeObj(this.queries, queriesFromParam);
 
        
        /**
         *  Get a current url with queries
         */
        URLQueryBuilder.prototype.getUrl = function() {
            var url = this.url;
            var queries = '?';
            for(var name in this.queries)
                queries += (name + "=" + this.queries[name] + "&");
         
            return url + queries;
        };
        
 
        /**
         *  Get clear url without queries
         */
        URLQueryBuilder.prototype.getClearUrl = function() {
 
            return this.url;
        };
 
        /**
         *  Delete query by name
         *  @param {string} name, query that will be deleted
         */
        URLQueryBuilder.prototype.delete = function(name) {
            delete this.queries[name];
            
            return this;
        };
 
        /**
         *  Change query by name
         *  @param {string} name, query what will be changed
         *  @param {string|number} value, new value for query
         */
        URLQueryBuilder.prototype.change = function(name, value) {
            this.queries[name] = value.toString();
 
            return this;
        };
 
        /**
         *  Add new query
         *  @param {string} name, name of new query
         *  @param {string|number} value, value for new query
         */
        URLQueryBuilder.prototype.add = function(name, value) {
            if(typeof name === "string") {
                this.queries[name] = value.toString();
            } else if(typeof name === "object" && name) {
                var queries = name;
                for(var i in queries) 
                    this.add(i, queries[i]);
            } else {
                throw new Error("Param 'name' must be a string or an object");
            }
 
            return this;
        };
 
 
        /**
         *  Clear query string
         *  @param {string|object} queries
         */
        URLQueryBuilder.prototype.reset = function(queries) {
            this.queries = parseQueries(queries);
 
            return this;
        };
 
 
        /**
         *  Check if queries has specific query
         *  @return {boolean} true if has, false if not
         */
        URLQueryBuilder.prototype.has = function(name) {
 
            return (name in this.queries);
        };
    }
})();


Вернуться к обсуждению:
Обмен готовыми решениями
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.03.2016, 21:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Как запускать браузер с готовыми настройками?
пишу этот код, но всё равно выдаёт ошибку: InvalidOperationException не обработано пользовательским...

Подскажите сайты с готовыми спрайтами под меню
Подскажите сайты с готовыми спрайтами, лучше под меню. Пожалуйста...

Связь с готовыми mdb и accdb через форму
Добрый вечер! Нужна программная реализация подключения к бд, вывод данных из таблицы на форму...

На просторах интернета нашел файлик с готовыми макросами
Заливаю чтоб было, может кто найдет для себя готовые решения для своих задач.

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.