我试图删除文档准备浏览器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]);
});
我只想删除一个参数成功。你可以这样做:
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);
}
}