JS/HTML5 从 url 中删除 url 参数
Posted
技术标签:
【中文标题】JS/HTML5 从 url 中删除 url 参数【英文标题】:JS/HTML5 remove url params from url 【发布时间】:2012-05-19 13:06:30 【问题描述】:我有一个这样的网址
/users/?i=0&p=90
如何在 js 中删除部分
? to 90
谁能给我看一些代码?
编辑
我的意思是用 window.location.href 来做这个(所以直接在浏览器的 url 栏中)
我试过了
function removeParamsFromBrowserURL()
document.location.href = transform(document.location.href.split("?")[0]);
return document.location.href;
我也不想进行重定向,所以只需从 ?结束
【问题讨论】:
所以你只希望它是/users/90
,或者/users/
之后什么都没有?
@JonathanSampson 我只需要 /users/
但不是字符串,我需要直接在浏览器栏上这样做
document.location.href = transform(document.location.href)
;对转换本身使用以下任何答案。
Errm... 我的意思是更多类似于 document.location.href = document.location.href.split("?")[0]
的意思(transform
是一个隐喻函数,表示以下答案之一 - 它不存在)
【参考方案1】:
function removeParamsFromBrowserURL()
return window.location.href.replace(/\?.*/,'');
【讨论】:
应该没问题,但它会重定向我 当然会重定向。没有重定向就没有办法做到这一点。 不,这个函数只返回window.lcoation.href
的“干净”部分【参考方案2】:
如果你只想要/users/
部分:
var newLoc = location.href.replace( /\?.+$/, '' );
您也可以拆分字符串,并返回第一部分:
var newLoc = location.href.split("?")[0];
或者您可以将所有内容匹配到问号:
if ( matches = location.href.match( /^(.+)\?/ ) )
alert( matches[1] );
【讨论】:
【参考方案3】:一种方法是leftside = whole.split('?')[0]
,假设没有?在所需的左侧
http://jsfiddle.net/wjG5U/1/
这将从 url 中删除 ?... 并自动将浏览器重新加载到剥离的 url(无法使其在 JSFiddle 中工作)我将以下代码放在一个文件中,并放入一些 ?a=b 内容手动然后点击按钮。
<html>
<head>
<script type="text/javascript">
function strip()
whole=document.location.href;
leftside = whole.split('?')[0];
document.location.href=leftside;
</script>
</head>
<body>
<button onclick="strip()">Click</button>
</body>
</html>
【讨论】:
我不是专家,但我相信这些人 :) ***.com/a/6478682/1325290 没有重定向 :(【参考方案4】:如果您只想要 /users/ 部分,那么您可以将其子串化:
var url = users/?i=0&p=90;
var urlWithNoParams = url.substring(0, url.indexOf('?') - 1);
这会将字符串从索引 0 提取到 '?' 之前的字符字符。
【讨论】:
【参考方案5】:无论我使用哪个 url 重定向,我都遇到了 #page 来回引用粘在 url 中的问题。这解决了一切。
我是这样使用脚本的:
<script type="text/javascript">
function strip()
whole=document.location.href;
leftside = whole.split('#')[0];
document.location.href=leftside;
</script>
<a onclick="strip()" href="http://[mysite]/hent.asp" >Click here</a>
【讨论】:
以上是关于JS/HTML5 从 url 中删除 url 参数的主要内容,如果未能解决你的问题,请参考以下文章
通过删除 Laravel 中的多余字符,从斜杠分隔的 url 中提取参数值
如何从 url 中删除 socket.io EIO 和其他参数