Sayfaya URL əlavə edin və səhifəni yeniləyin

Cari URL-yə bir parametr əlavə edən və sonra səhifəni yeniləyən bir javascript parçası yazmaq istəyirəm - bunu necə edə bilərəm?

83
13 мая '11 в 23:33 2011-05-13 23:33 amatör 13 may 2011-ci ildə saat 23:33 'də təyin olunub 2011-05-13 23:33
@ 5 cavab

işləməlidir (doğrulanmadı!)

 var url = window.location.href; if (url.indexOf('?') > -1){ url += ' }else{ url += '?param=1' } window.location.href = url; 
106
13 мая '11 в 23:36 2011-05-13 23:36 Cavab 13 may 2011- ci il saat 23: 00-da Shlomi Komemi tərəfindən verilir. 2011-05-13 23:36

Qısacası qəbul edilən cavab, eyni şeyi edir, lakin sadə saxlayır:

 window.location.search += '> 
border=0

Bütün URL'yi dəyişdirmək lazım deyil, yalnız yer axtarış xüsusiyyətləri olaraq bilinən sorgu simli.

Bir axtarış xüsusiyyətinə bir dəyər verdiyiniz zaman, bir sual işarəsi brauzer tərəfindən avtomatik olaraq daxil edilir və səhifə yenidən yüklənir.

88
14 мая '11 в 0:58 2011-05-14 00:58 Cavab Bo Frederiksen tərəfindən 14 may 2011-ci ildə 0:58 2011-05-14 00:58

Ən cavablar burada URL-yə aşağıdakı parametr və ya bənzər bir seçim kimi bir parametr əlavə edilməsini təklif edir:

 location.href = location.href + " + value; 

Bu, çox hallarda yaxşı işləyəcəkdir.

Bununla belə

Bu mənim fikrimcə URL parametresini əlavə etmək üçün doğru yol deyildir.

Təklif olunan yanaşma parametrlərin URL-də müəyyən olunmadığını yoxsa, ehtiyatlı olmasa, bir neçə dəfə təkrarlanan eyni parametrlə çox uzun bir URL ola bilərsiniz. yəni:

 https://stackoverflow.com/?> 

Bu nöqtədə problemlər ortaya çıxır. Təklif olunan yanaşma URL'yi etibarsız edən bir neçə səhifəni yenilədikdən sonra çox uzun bir URL yaratmaq və yaradacaqdır. Uzun bir URL haqqında daha ətraflı məlumat üçün bu linkə baxın . Müxtəlif brauzerlərdə URL'nin maksimum uzunluğu nədir?

Bu mənim təklif etdiyim yanaşma:

 function URL_add_parameter(url, param, value){ var hash = {}; var parser = document.createElement('a'); parser.href = url; var parameters = parser.search.split(/\?| for(var i=0; i < parameters.length; i++) { if(!parameters[i]) continue; var ary = parameters[i].split('='); hash[ary[0]] = ary[1]; } hash[param] = value; var list = []; Object.keys(hash).forEach(function (key) { list.push(key + '=' + hash[key]); }); parser.search = '?' + list.join(' return parser.href; } 

Bu funksiyadan istifadə etmək üçün aşağıdakıları yerinə yetirməlisiniz:

 location.href = URL_add_parameter(location.href, 'param', 'value'); 
50
15 янв. cənab yeyo verildi 2015-01-15 21:59 '15 saat 21:59 'da 2015-01-15 21:59
 function gotoItem( item ){ var url = window.location.href; var separator = (url.indexOf('?') > -1) ? " : "?"; var qs = "item=" + encodeURIComponent(item); window.location.href = url + separator + qs; } 

Əlavə uyğunluq versiyası

 function gotoItem( item ){ var url = window.location.href; url += (url.indexOf('?') > -1)?" + "item=" + encodeURIComponent(item); window.location.href = url; } 
2
13 мая '11 в 23:45 2011-05-13 23:45 cavab 13 may 2011-ci il tarixində saat 11: 45-də epascarello verilmişdir
 location.href = location.href + " + value; 
1
13 мая '11 в 23:36 2011-05-13 23:36 Cavab Paul Alexander tərəfindən 13 may 2011-ci ildə saat 11:36 'də verildi 2011-05-13 23:36

yazıları ilə bağlı digər suallar və ya bir sual