Cocos2d-JS 获取当前页面的URL参数

【原创博文,转载请注明出处!】

【原文链接】

这两天做一个小项目,里面有个需求需要从Cocos2d-JS的游戏场景中跳转到一个外部html页面(跳转可以通过window.open(URL)实现新建窗口打开页面,或者直接设置window.location.href=URL在当前窗口打开新页面),在那边填写用户的获奖信息,提交服务端后,再跳转回游戏。但是,跳回来的时候肯定不能和第一次打开游戏一样进入初始场景,所以那边跳转到游戏需要携带参数,然后游戏中如果获取到参数就要根据参数打开不同的场景(比如进入游戏结束的界面)。

在Cocos2d-JS中我们可以通过window.location.href得到当前游戏的URL,但是有时候要从这个URL里面获取数据显得有点麻烦,什么字符串截取或者自己使用正则表达式处理什么的,这里提供一个现成的函数,代码如下:

    /**
     * 获取当前页面URL中的参数
     * @param name:URL中携带的数据参数名
     * @returns {*}
     */
    var getQueryString = function (name) {
        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        var r = window.location.search.substr(1).match(reg);

        if (r !== null) {
            return unescape(r[2]);
        }
        return null;
    };
    
    // 【以下是测试代码】
    // 假设当前游戏URL是:http://www.zengbinsi.com/cocos/index.html?tag=1&user=admin
    cc.log(getQueryString("tag"));  // 控制台输出:1
    cc.log(getQueryString("user"));  // 控制台输出:admin

其实使用的也是正则表达式,亲测可用,在这里记录下,省的以后每次都要去写一个正则式,我懒 - -!。

把这段代码随便放在Cocos2d-JS项目代码的某个位置,只有保证调用的时候已经定义过且可以访问到即可。

你可能感兴趣的:(Cocos2d-JS 获取当前页面的URL参数)