js实现静态页面跳转传参

最近有个项目:
    存静态web服务,一个新闻页面列表出所有新闻摘要信息,然后通过点击新闻详情访问到该新闻的详情页面;
    新闻展示的页面通过ajax请求接口获取到新闻的摘要信息,预计想通过id的方式访问到新闻详情页面;
    如果动态实现跳转非常简单,静态文件跳转。。。想了一下是否能实现在静态文件的后面加上请求的id呢?比如动态情况http://news.com/?new_id=1;
    静态请求src="news_content.html?new_id=1"
    最后查资料还是能实现的;

特别声明:Post.html和Read.html文件在同一级目录下

1. 请求页面(新闻列表页面)

Post.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
代码如下:

<a href="Read.html?art_id=1">静态传值</a>

</body>
</html>

2. 跳转静态的页面(新闻详情页面)

Read.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    UrlParm = function () { // url参数
        var data, index;
        (function init() {
            data = [];
            index = {};
            var u = window.location.search.substr(1);
            if (u != ‘‘) {
                var parms = decodeURIComponent(u).split(‘&‘);
                for (var i = 0, len = parms.length; i < len; i++) {
                    if (parms[i] != ‘‘) {
                        var p = parms[i].split("=");
                        if (p.length == 1 || (p.length == 2 && p[1] == ‘‘)) {// p | p=
                            data.push([‘‘]);
                            index[p[0]] = data.length - 1;
                        } else if (typeof(p[0]) == ‘undefined‘ || p[0] == ‘‘) { // =c | =
                            data[0] = [p[1]];
                        } else if (typeof(index[p[0]]) == ‘undefined‘) { // c=aaa
                            data.push([p[1]]);
                            index[p[0]] = data.length - 1;
                        } else {// c=aaa
                            data[index[p[0]]].push(p[1]);
                        }
                    }
                }
            }
        })();
        return {
            // 获得参数,类似request.getParameter()
            parm: function (o) { // o: 参数名或者参数次序
                try {
                    return (typeof(o) == ‘number‘ ? data[o][0] : data[index[o]][0]);
                } catch (e) {
                }
            },
            //获得参数组, 类似request.getParameterValues()
            parmValues: function (o) { // o: 参数名或者参数次序
                try {
                    return (typeof(o) == ‘number‘ ? data[o] : data[index[o]]);
                } catch (e) {
                }
            },
            //是否含有parmName参数
            hasParm: function (parmName) {
                return typeof(parmName) == ‘string‘ ? typeof(index[parmName]) != ‘undefined‘ : false;
            },
            // 获得参数Map ,类似request.getParameterMap()
            parmMap: function () {
                var map = {};
                try {
                    for (var p in index) {
                        map[p] = data[index[p]];
                    }
                } catch (e) {
                }
                return map;
            }
        }
    }();

    var art_id = UrlParm.parm("art_id");
    console.log(art_id, ‘#####‘)
</script>

</body>
</html>

3. 要设置cookice

问题:
    这样虽然是能实现需求,不过当用户从新闻页面传参id到新闻详情页面,再次刷新,页面上一次获得id就不存在了;所有就想到是否可以将id写入到cookice中,最好是页面关闭的时候将cookice清空掉

特别提醒:要加载jquery.cookie.js文件下载地址

在刚才的Read.html页面scripts标签中进行添加代码

<script type="text/javascript" src="/web/js/jquery.cookie.js"></script>
<script type="text/javascript">
...
   var art_id = UrlParm.parm("art_id");
    console.log(art_id, ‘#####‘);
    /**设置cookice   存储3天期限***/
    $.cookie(‘art_id‘,art_id,{expires: 3,path:‘/‘});
    /** 获取cookice中的id */
    $.cookie(‘art_id‘);
    /**最后就是正常的ajax请求接口获取数据,然后巴拉巴拉~~~**/
</script>

页面关闭清空cookie还没搞,就先这样作为一个笔记!!!!

附加:页面关闭清空cookie没有测试不清楚是否有效

    window.onbeforeunload = function (event) {
        $.cookie(‘art_id‘, {expires: -1,path:‘/‘});
        var message = ‘...‘;
        if (typeof event == ‘undefined‘) {
            event = window.event;
        }
        if (event) {
            event.returnValue = message;
        }
        return message;
    }

原文地址:https://www.cnblogs.com/supery007/p/9241294.html

时间: 2024-10-15 05:25:34

js实现静态页面跳转传参的相关文章

Jquery select change 页面跳转 传参

<script src="http://cdn.bootcss.com/jquery/2.2.1/jquery.min.js"></script> <script language="javascript" type="text/javascript"> $(document).ready(function(){ $('#mySelect').change(function(){ $('#show_select

微信小程序页面跳转传参

1.传递参数方法 使用navigatior组件 <navigator url="/pages/pull/pull?title=lalla&name=cc" hover-class="navigator-hover">跳转到新页面</navigator> 使用跳转API wx.navigateTo({ url: '/pages/pull/pull?name=mc&age=22' }) 2.接收参数方法 在页面的onLoad方法的

小程序页面跳转传参参数值为url时参数时 会出现丢失

当参数的值为url的时候,  ?号   _  下划线   等等 都会被 截取掉,看不到,  这样在 另一个页面 options中  截取的url就不完全 let url="http://baidu_aaa.com/?a=1&b=2" wx.navigateTo({ url: `detail?url=123` }) 另一个页面  options.url = http://baidu   这个 解决方法 可以使用 encodeURIComponent():函数可把字符串作为 URI

vue具体页面跳转传参方式

1.写数据,可以使用".","[]",以及setItems(key,value);3种方式. 例如: localStorage.name = proe;//设置name为" proe " localStorage["name "] = " proe";//设置name为" proe ",覆盖上面的值 localStorage.setItem("name","

js父级页面跳转

<script>parent.location.href='../Index.aspx'</script> js父级页面跳转,布布扣,bubuko.com

js方法用来获取路径传参上所带的参数

//js方法用来获取路径传参上所带的参数 function GetQueryString(param) { var reg = new RegExp("(^|&)" + param + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) { return r[2]; } return null;

js function同一个方法,可传参,可不传参

实现的关键在于arguments[],arguments 是JavaScript里的一个内置对象,有的函数都有属于自己的一个arguments对象,它包括了函所要调用的参数.object对象. 输出结果: 姓名:没有输入姓名:性别:没有输入性别 姓名:MrLi:性别:没有输入性别 姓名:MrLi:性别:男 HTML Code: <html> <head> <title>js function同一个方法,可传参,可不传参</title> <script

Vue ---- 组件文件分析 组件生命周期钩子 路由 跳转 传参

目录 Vue组件文件微微细剖 Vue组件生命周期钩子 Vue路由 1.touter下的index.js 2.路由重定向 3.路由传参数 补充:全局样式导入 路由跳转 1. router-view标签 2. router-link标签 3.逻辑跳转 this.$router 控制路由跳转 this.$route 控制路由数据 Vue组件文件微微细剖 组件在view 文件中创建 如果需要用到其他小组件可以 在 component文件中创建并导入 view文件下: <template> <di

Vue之路由跳转传参,插件安装与配置

路由跳转 this.$router.push('/course'); this.$router.push({name:course}); this.$router.go(-1); //后退一页 this.$router.go(1): // 前进一页 <router-link to = "/course">课程页</router-link> <router-link :to="{name:'course'}"> 课程页 </r