JS实现超链接参数编解码(包含中文参数)

之前看过一个网页小游戏:制作月饼贺卡,自己挑选月饼馅和月饼皮,最后在贺卡写上一段内容并生成一个分享链接。
内容就是一些简单的移动渐隐渐现动画,核心是通过解析分享链接呈现出别人写的文字和月饼信息。
于是本人在网上查了一些资料使用CocosCreator做了个小Demo。以下放出对URL的编码和解码部分,中文用的是Js的escape和unescape方法来编码和解码。

// 生成分享URL
    genShareUrl:function(){
        var shareName = cc.find("Canvas/ShareCakeLayout/getter").getComponent(cc.EditBox);
        var sharWords = cc.find("Canvas/ShareCakeLayout/getterWords").getComponent(cc.EditBox);
        var t=this,
            n=window.location.origin+window.location.pathname,
            r="",
            i={xian:MoonCake.SelectCakeSkin,pi:MoonCake.SelectCakePie,name:window.escape(shareName.string),words:window.escape(sharWords.string)};
        n=n.replace("index","share");
        for(var s in i)
            r+="&"+s+"="+(i[s]||"");
        r=r.length>1?n+"?"+r.substr(1):n;
        var o=r.indexOf("?")>-1?"&":"?";
        return (r+=o+"sourcefrom="+"shareclick"),r
    },

    // 从URL中获取unicode值
    getValueFromUrlDeSharp:function(e){
        var t = window.location.href.match(/\?.*/g);
        if(t&&t.length>0){
            var n=t[0].replace("?","").split("&");
            if(n&&n.length>0)
                for(var r in n)
                    if((new RegExp(e+"=")).test(n[r])){
                        var i=n[r].replace(e+"=",""),s=i.indexOf("#");
                        return s>-1&&(i=i.substr(0,s)),i
                }
        }
         return""
 },

// 调用:
// 生成分享链接:
this.genShareUrl();

// 解析链接参数:
// 中文需要调用unescape来解码
var skinData = this.getValueFromUrlDeSharp("xian");
cc.log(skinData + " -- skinData");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值