文章标签 » HTML

HTML静态页面如何传递/获取参数?(已解决)

需求

想实现这样一个功能:打开一个静态HTML页面A,让它自动跳转到页面B

实现

怎么实现呢?

习惯了JSP之类的传参(Request、Session等),忽然想用静态的HTML页面,不知道怎么用了。

比较容易想到的就是通过URL传参,A.html?ref-url=B.html
怎样才能取到这个ref-url的值呢?
字符串……split?
会不会太low?
应该有更简洁的办法吧。

网上搜了搜(见文末参考部分),有主意了。
还是通过URL,但不是用split,而是用正则表达式。

示例

A.html的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
    <head>
        <title>Young Zhu</title>
        <script type="text/javascript">
        function getURL() {
        // 注意这里的 search ,会返回URL里?后面的字符串,包括?本身
        var queryStr = window.document.location.search;
        //alert(queryStr);
        var url = (queryStr.match(/(=)[^&]*/g))[0].substr(1);
        //alert(url);
        return url;
        }
        </script>
    </head>
    <body>
    <script type="text/javascript">
    window.location.href=getURL();
    </script>
    </body>
</html>

用浏览器打开 A.html,在地址栏现有的内容后面加上以下内容:?ref-url=B.html

注意:

  1. 本例中参数名不重要,因为正则表达式是要取=后面的内容。
  2. 为了方便,只写了B.html,测试时请换成真实路径,或者换成其他的网址,例如某Du。

知识点

  1. 获取URL后面的传参字符串
    window.document.location.search

    原来还专门有这样的一个属性 search,而不用自己去解析。

  2. 正则表达式
  3. 页面重定向
    window.location.href=new-url;

参考链接

HTML自动跳转

关于页面的自动跳转,以前知道有JavaScript的方法,直接设置window.location 或者在setTimeout 函数里进行设置。

现在自己的博客里要用到,就想看看有没有更“漂亮”的写法。
Google了一下,还真有。

简单。
只要在HTML文件的<head>里添加以下这行代码:

<meta http-equiv="refresh" content="0;url=your-url”>

参数说明:

  • http-equiv : 指定动作。这里固定为 refresh
  • content
    • ;前面的数字 : 设定跳转的时间,单位
      我不需要等待,所以设为0
    • url : 即想要跳转的URL