Cocos2d-JS 获取当前页面的URL参数
2016-11-19 本文已影响64人
a8f5925e472d
【原创博文,转载请注明出处!】
这两天做一个小项目,里面有个需求需要从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项目代码的某个位置,只有保证调用的时候已经定义过且可以访问到即可。