url传值的一个问题解决

一、原问题代码
A界面 (XingQi参数为循环拼接,数据多时无法传递完整)

window.location.href = "LM210502.aspx?BusinessID=LM210501&setMenName=" + setMenName + "&RiQi=" + RiQi + "&KaiShiRiQi=" + KSRiQi + "&JieShuRiQi=" + JSRiQi + "&KaiShiShiJian=" + KaiShiShiJian + "&JieShuShiJian=" + JieShuShiJian + "&XingQi=" + Weeks + "&ShiYanShiID=" + ShiYanShiID + "&flag=" + flag;




B界面

var flag = $.getUrlVar("flag");
var ShiYanShiID = $.getUrlVar("ShiYanShiID");
var KaiFangShiJianID = $.getUrlVar("KaiFangShiJianID");
var KaiShiRiQi = decodeURIComponent($.getUrlVar("KaiShiRiQi"));
var JieShuRiQi = decodeURIComponent($.getUrlVar("JieShuRiQi"));
var KaiShiShiJian = $.getUrlVar("KaiShiShiJian");
var JieShuShiJian = $.getUrlVar("JieShuShiJian");
var XingQi = $.getUrlVar("XingQi");
var RiQi = $.getUrlVar("RiQi");
二、解决办法

1.由于这两个界面都是iframe,因此在外层父界面加一个js的json对象变量,在a界面进行赋值,在b界面进行调用;

2.如果没有父界面,添加一个js文件来定义一些共享变量也是可以的 ;

代码如下:

父界面:
<script type="text/javascript">
        // LM210501分配数据 LM210502使用
        var jsonLM210501 = {};
</script>


A界面:
parent.jsonLM210501 =
        {
            "BusinessID": "LM210501",
            "setMenName": setMenName,
            "RiQi": RiQi,
            "KaiShiRiQi": KSRiQi,
            "JieShuRiQi": JSRiQi,
            "KaiShiShiJian": KaiShiShiJian,
            "JieShuShiJian": JieShuShiJian,
            "XingQi": Weeks,
            "ShiYanShiID": ShiYanShiID,
            "flag": flag
        };

        window.location.href = "LM210502.aspx";


B界面:
var flag = parent.jsonLM210501.flag;
var ShiYanShiID = parent.jsonLM210501.ShiYanShiID;
var KaiFangShiJianID = parent.jsonLM210501.KaiFangShiJianID;
var KaiShiRiQi = parent.jsonLM210501.KaiShiRiQi;
var JieShuRiQi = parent.jsonLM210501.JieShuRiQi;
var KaiShiShiJian = parent.jsonLM210501.KaiShiShiJian;
var JieShuShiJian = parent.jsonLM210501.JieShuShiJian;
var XingQi = parent.jsonLM210501.XingQi;
var RiQi = parent.jsonLM210501.RiQi;        


注:感觉这样改动最稳妥,另js所有变量及函数名都应以小写开头,但因为是维护老系统,一切风格保持不变。

 

posted @ 2017-06-13 16:26  Coder_小菜  阅读(688)  评论(0编辑  收藏  举报