URL에 추가하고 페이지 새로 고침
현재 URL에 매개 변수를 추가하고 페이지를 새로 고치는 자바 펼치기를 작성합니다. 어떻게 할 수 있습니까?
이것은 작동해야합니다.
var url = window.location.href;
if (url.indexOf('?') > -1){
url += '¶m=1'
}else{
url += '?param=1'
}
window.location.href = url;
허용 된 답변보다 짧지 만 동일한 작업을 수행하지만 간단하게 유지하십시오.
window.location.search += '¶m=42';
우리는 위치의 검색 속성으로 작동하지 않는 경우에만 전체 URL이 없습니다.
검색 속성에 값을 지정하면 브라우저에서 물음표가 자동으로 삽입되고 페이지가 다시로드됩니다.
여기에있는 대부분의 답변은 다음 스 니펫 또는 변형과 마찬가지로 URL에 변수를 추가해야한다는 제안을합니다.
location.href = location.href + "¶meter=" + value;
이것은 대부분의 경우에 아주 잘 작동합니다.
하나
내 의견 반대 URL에 반대를 추가하는 올바른 방법이 아닙니다.
제안 된 방법은 매개 변수가 URL에 이미 설정되어 있는지 테스트하지 않기 때문에 이미 설정되어 있는지 테스트하지 않습니다. 즉 :
https://stackoverflow.com/?¶m=1¶m=1¶m=1¶m=1¶m=1¶m=1¶m=1¶m=1¶m=1
이 시점에서 문제가 시작됩니다. 제안 된 접근 방식은 여러 페이지를 새로 고친 후 URL이 매우 길어 URL을 무효화 할 수 있습니다. 긴 URL에 대한 자세한 내용을 보려면이 링크를 살펴보십시오 . 다른 브라우저에서 URL의 최대 길이는 얼마입니까?
이것이 내가 제안한입니다.
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;
}
이 기능을 사용하면 다음을 수행해야합니다.
location.href = URL_add_parameter(location.href, 'param', 'value');
location.href = location.href + "¶meter=" + value;
function gotoItem( item ){
var url = window.location.href;
var separator = (url.indexOf('?') > -1) ? "&" : "?";
var qs = "item=" + encodeURIComponent(item);
window.location.href = url + separator + qs;
}
더 많은 compat 버전
function gotoItem( item ){
var url = window.location.href;
url += (url.indexOf('?') > -1)?"&":"?" + "item=" + encodeURIComponent(item);
window.location.href = url;
}
아래 코드를 확인하십시오 :
/*Get current URL*/
var _url = location.href;
/*Check if the url already contains ?, if yes append the parameter, else add the parameter*/
_url = ( _url.indexOf('?') !== -1 ) ? _url+'¶m='+value : _url+'?param='+value;
/*reload the page */
window.location.href = _url;
위의 @yeyo의 신중한 답변에 대한 하나의 작은 버그 수정.
변화 :
var parameters = parser.search.split(/\?|&/);
에 :
var parameters = parser.search.split(/\?|&/);
이 시도
var url = ApiUrl(`/customers`);
if(data){
url += '?search='+data;
}
else
{
url += `?page=${page}&per_page=${perpage}`;
}
console.log(url);
참고 URL : https://stackoverflow.com/questions/5997450/append-to-url-and-refresh-page
'IT' 카테고리의 다른 글
Bash 루프의 카운터 증가가 작동하지 않습니다. (0) | 2020.07.18 |
---|---|
최대 단일 판매 이익 (0) | 2020.07.18 |
RESTful POST 메소드에서 다음 변수에 액세스하는 방법 (0) | 2020.07.18 |
역 추적 로그 예외 (0) | 2020.07.18 |
Java 8에서 유형을 변환하는 메소드에 결합기가 필요한 이유 (0) | 2020.07.18 |