我有一个类似http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235
的网址。
我想获取没有查询字符串的网址:http://localhost/dms/mduserSecurity/UIL/index.php
。
JavaScript中有没有这方法?目前我正在使用document.location.href
,但它会返回完整的网址。
答案 0 :(得分:341)
了解Window.location
和Location
界面:
var url = [location.protocol, '//', location.host, location.pathname].join('');
答案 1 :(得分:285)
试试这个:window.location.href.split('?')[0]
答案 2 :(得分:29)
location.toString().replace(location.search, "")
答案 3 :(得分:8)
var url = window.location.origin + window.location.pathname;
答案 4 :(得分:7)
如果您还想删除哈希,请尝试以下方法:window.location.href.split(/[?#]/)[0]
答案 5 :(得分:5)
尝试:
document.location.protocol + '//' +
document.location.host +
document.location.pathname;
(注意:.host
而不是.hostname
,以便在必要时也包含端口
答案 6 :(得分:3)
使用split(简单方法)剪切字符串:
var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);
答案 7 :(得分:2)
获取除查询以外的URL的每个部分:
var url = (location.origin).concat(location.pathname).concat(location.hash);
请注意,这也包括哈希值,如果有的话(我知道你的示例网址中没有哈希值,但我为了完整性而包含了这个方面)。要消除哈希,只需排除.concat(location.hash)
。
最好使用concat
将Javascript字符串连接在一起(而不是+
):在某些情况下,它可以避免类型混淆等问题。
答案 8 :(得分:1)
以下是两种方法:
<script type="text/javascript">
var s="http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu
=true&pcode=1235";
var st=s.substring(0, s.indexOf("?"));
alert(st);
alert(s.replace(/\?.*/,''));
</script>
答案 9 :(得分:1)
这个怎么样:location.href.slice(0, - ((location.search + location.hash).length))
答案 10 :(得分:1)
private static cucumberReporterOptions = {
theme: 'bootstrap' as const,
....
答案 11 :(得分:0)
使用window.location
var loc = window.location;
var withoutQuery = loc.hostname + loc.pathname;
var includingProtocol = loc.protocol + "//" + loc.hostname + loc.pathname;
看到更多属性
答案 12 :(得分:0)
这是使用URL() interface的一种方法:
new URL(location.pathname, location.href).href
答案 13 :(得分:0)
只需将这两行添加到$(document).ready中,如下所示:
$(document).ready(function () {
$("div.sidebar nav a").removeClass("active");
$('nav a[href$="'+ window.location.pathname.split("?")[0] +'"]').addClass('active');
});
最好使用美元符号($)(以结尾)
$('nav a[href$
代替(^)(开头)
$('nav a[href^
因为,如果您使用(^)号,并且在导航菜单中嵌套了URL(例如“ / account”和“ / account / roles”)
它将同时激活它们。
答案 14 :(得分:0)
如果您使用点网核心3.1,则它支持大小写忽略路由,因此,如果溃败点是小写字母,并且用户使用大写字母写出溃败点,则前一种方法没有帮助。 / p>
因此,以下代码非常有帮助:
$(document).ready(function () {
$("div.sidebar nav a").removeClass("active");
var urlPath = window.location.pathname.split("?")[0];
var nav = $('div.sidebar nav a').filter(function () {
return $(this).attr('href').toLowerCase().indexOf(urlPath.toLocaleLowerCase()) > -1;
});
$(nav).each(function () {
if ($(this).attr("href").toLowerCase() == urlPath.toLocaleLowerCase())
$(this).addClass('active');
});
});