我试图删除文档准备浏览器url中的“?”后的所有内容。
以下是我正在尝试的:
jQuery(document).ready(function($) {
var url = window.location.href;
url = url.split('?')[0];
});
我可以这样做,并看到下面的工作:
jQuery(document).ready(function($) {
var url = window.location.href;
alert(url.split('?')[0]);
});
如果我在URL的末尾有一个特殊的标签,比如:http://domain.com/?tag=12345
下面是删除标签的代码,只要它出现在URL中:
<script>
// Remove URL Tag Parameter from Address Bar
if (window.parent.location.href.match(/tag=/)){
if (typeof (history.pushState) != "undefined") {
var obj = { Title: document.title, Url: window.parent.location.pathname };
history.pushState(obj, obj.Title, obj.Url);
} else {
window.parent.location = window.parent.location.pathname;
}
}
</script>
这就给出了从URL中删除一个或多个(或全部)参数的想法
window。location。pathname基本上得到'之前的所有内容?在url中。
Var pathname = window.location.pathname;//只返回路径
Var url = window.location.href;//返回完整URL
我只想删除一个参数成功。你可以这样做:
let params = new URLSearchParams(location.search)
params.delete('success')
history.replaceState(null, '', '?' + params + location.hash)
这也保留了#hash。
URLSearchParams不会在IE上工作,但正在为Edge工作。你可以使用polyfill或者可以使用naïve helper函数来支持ie:
function take_param(key) {
var params = new Map(location.search.slice(1).split('&')
.map(function(p) { return p.split(/=(.*)/) }))
var value = params.get(key)
params.delete(key)
var search = Array.from(params.entries()).map(
function(v){ return v[0]+'='+v[1] }).join('&')
return {search: search ? '?' + search : '', value: value}
}
可以这样使用:
history.replaceState(
null, '', take_param('success').search + location.hash)
一个简单的方法做到这一点,工作在任何页面,需要HTML 5
// get the string following the ?
var query = window.location.search.substring(1)
// is there anything there ?
if(query.length) {
// are the new history methods available ?
if(window.history != undefined && window.history.pushState != undefined) {
// if pushstate exists, add a new state to the history, this changes the url without reloading the page
window.history.pushState({}, document.title, window.location.pathname);
}
}
如果我在URL的末尾有一个特殊的标签,比如:http://domain.com/?tag=12345
下面是删除标签的代码,只要它出现在URL中:
<script>
// Remove URL Tag Parameter from Address Bar
if (window.parent.location.href.match(/tag=/)){
if (typeof (history.pushState) != "undefined") {
var obj = { Title: document.title, Url: window.parent.location.pathname };
history.pushState(obj, obj.Title, obj.Url);
} else {
window.parent.location = window.parent.location.pathname;
}
}
</script>
这就给出了从URL中删除一个或多个(或全部)参数的想法
window。location。pathname基本上得到'之前的所有内容?在url中。
Var pathname = window.location.pathname;//只返回路径
Var url = window.location.href;//返回完整URL