Вот функция, которую я использую в нашем приложении для чтения параметров URL. Пока что меня это не подводило;)
urlParam:function(name, w){
w = w || window;
var rx = new RegExp('[\&|\?]'+name+'=([^\&\#]+)'),
val = w.location.href.match(rx);
return !val ? '':val[1];
}
Для объяснения регулярного выражения:
- [\ & | \?] Взять либо начало строки запроса '?' или разделение между параметрами '&'
- 'name' будет именем параметра 'docId' в вашем случае
- ([^ \ & #] +) принимает любые символы, которые не являются & и #.
Хеш-ключ часто используется в одностраничных приложениях.
И в скобках хранится ссылка на содержимое .
- val будет массивом или null / undefined, а val [1] искомое значение