js获取url各项方法

转自:https://www.cnblogs.com/Arison/p/5286368.html

window.location方法后还还可以带href,search等参数,下面我们来看看获取url各项参数的办法。

URL即:统一资源定位符 (Uniform Resource Locator, URL)
完整的URL由这几个部分构成:
scheme://host:port/path?query#fragment
scheme:通信协议
常用的http,ftp,maito等


http://localhost/test/test.htm?id=1
代码如下 复制代码

<html>
<head>
</head>
<body>
<script languge=javascript>
alert(window.location.pathname); --返回 /test/test.htm
alert(window.location.search); --返回 ?id=1
alert(window.location.href); --返回 http://localhost/test/test.htm?id=1
</script>
</body>
</html>

location对象 含有当前URL的信息. 属性 href 整个URL字符串.
protocol 含有URL第一部分的字符串,如http:
host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/
hostname 包含URL中主机名的字符串.如http://www.cenpok.net ;
port 包含URL中可能存在的端口号字符串.
pathname URL中"/"以后的部分.如~list/index.htm
hash "#"号(CGI参数)之后的字符串.
search "?"号(CGI参数)之后的字符串.

 


对于这样一个URL
代码如下 复制代码

http://www.php230.com :80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串(在浏览器中就是完整的地址栏)
本例返回值:
代码如下 复制代码
http://www.php230.com :80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

2,window.location.protocol
URL 的协议部分
本例返回值:http:

3,window.location.host
URL 的主机部分
本例返回值:www.php230.com

4,window.location.port
URL 的端口部分
如果采用默认的80端口(update:即使添加了:80),那么返回值并不是默认的80而是空字符
本例返回值:""

5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值:/fisker/post/0703/window.location.html

6,window.location.search
查询(参数)部分
除了给动态语言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值:?ver=1.0&id=6

7,window.location.hash
锚点
本例返回值:#imhere

以下是一个简单的实现jsp页面点击查询后弹出layUI小框进行信息输入的示例: 1. 在jsp页面中引入layUI的相关css和js文件 ```html <!--layUI css--> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> <!--layUI js--> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.all.js"></script> ``` 2. 在jsp页面中添加一个查询按钮,点击后弹出layUI小框 ```html <button class="layui-btn layui-btn-normal" onclick="showInputBox()">查询</button> ``` 3. 在jsp页面中添加一个隐藏的div作为layUI小框的容器 ```html <div id="inputBox" style="display: none;"> <!--小框内容--> </div> ``` 4. 在jsp页面中添加一个JavaScript函数用于显示layUI小框并获取系统时间和当前用户信息 ```javascript function showInputBox() { // 弹出layUI小框 layui.use(['layer'], function() { var layer = layui.layer; layer.open({ type: 1, title: '请输入查询条件', content: $('#inputBox'), area: ['500px', '300px'], btn: ['取消', '确定'], yes: function(index, layero) { // 点击取消按钮 layer.close(index); }, btn2: function(index, layero) { // 点击确定按钮 var name = $('#name').val(); // 获取姓名输入框的值 var time = new Date().toLocaleString(); // 获取当前时间 var user = '<%= request.getRemoteUser() %>'; // 获取当前用户信息 // 将姓名、时间和用户信息输出到小框中 $('#output').html('姓名:' + name + '<br>时间:' + time + '<br>用户:' + user); // 保存输入信息 $.ajax({ type: 'POST', url: 'saveInfo.jsp', data: {'name': name, 'time': time, 'user': user}, success: function(data) { // 保存成功后跳转查询页面 window.location.href = 'query.jsp'; }, error: function(xhr, textStatus, errorThrown) { alert('保存失败:' + errorThrown); } }); // 关闭layUI小框 layer.close(index); // 阻止默认事件和冒泡 return false; } }); }); } ``` 5. 在小框内容中添加姓名等各项信息输入框和输出框 ```html <div class="layui-form-item"> <label class="layui-form-label">姓名:</label> <div class="layui-input-inline"> <input type="text" id="name" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">时间:</label> <div class="layui-input-inline"> <input type="text" id="time" class="layui-input" disabled> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">用户:</label> <div class="layui-input-inline"> <input type="text" id="user" class="layui-input" disabled> </div> </div> <div id="output"></div> ``` 6. 在保存输入信息的jsp页面(saveInfo.jsp)中获取输入参数并保存到数据库或文件中 ```jsp <% request.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String time = request.getParameter("time"); String user = request.getParameter("user"); // TODO: 将输入信息保存到数据库或文件中 %> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值