有没有没有查询字符串的方法来获取URL?

2020/10/07 20:01 · javascript ·  · 0评论

我有一个类似的网址http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235

我想获取没有查询字符串的URL :http://localhost/dms/mduserSecurity/UIL/index.php

JavaScript中有什么方法吗?目前,我正在使用document.location.href,但它会返回完整的URL。

尝试这个: window.location.href.split('?')[0]

了解Window.locationLocation界面:

var url = [location.protocol, '//', location.host, location.pathname].join('');
location.toString().replace(location.search, "")
var url = window.location.origin + window.location.pathname;

如果您还想删除哈希,请尝试以下一种方法: window.location.href.split(/[?#]/)[0]

这是使用URL()接口的一种方法

new URL(location.pathname, location.href).href

尝试:

document.location.protocol + '//' +
document.location.host +
document.location.pathname;

(注意:.host不是.hostname这样端口被列入过,如果需要的话)

只需使用split剪切字符串即可(简单方法):

var myString = "http://localhost/dms/mduserSecurity/UIL/index.php?menu=true&submenu=true&pcode=1235"
var mySplitResult = myString.split("?");
alert(mySplitResult[0]);

要获取URL的每个部分(查询除外):

var url = (location.origin).concat(location.pathname).concat(location.hash);

请注意,如果有的话,它也包括散列(我知道您的示例URL中没有散列,但出于完整性考虑,我包括了这一方面)。要消除哈希,只需排除即可.concat(location.hash)

更好的做法是concat将Javascript字符串连接在一起(而不是+):在某些情况下,它避免了诸如类型混淆之类的问题。

这个怎么样: location.href.slice(0, - ((location.search + location.hash).length))

使用属性 window.location

var loc = window.location;
var withoutQuery = loc.hostname + loc.pathname;
var includingProtocol = loc.protocol + "//" + loc.hostname + loc.pathname;

您可以在https://developer.mozilla.org/en/DOM/window.location中查看更多属性。

这是两种方法:

<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>

只需将这两行添加到JS中的$(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”),

它将激活他们两个。

如果使用点网核心3.1,则它支持大小写忽略路由,因此,如果溃败点是小写字母,并且用户使用大写字母写出溃败点,前一种方法没有帮助。

因此,以下代码非常有帮助:

$(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');
    });
});
本文地址:http://javascript.askforanswer.com/youmeiyoumeiyouchaxunzifuchuandefangfalaihuoquurl.html
文章标签: ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!