/** * 根据电话号码获取位置信息 * @param phoneNo 电话号码 * @param succFunc 调用接口成功的回调函数 * 回调函数入参的数据格式如下: * { "mobile": "18576648552", "province": "广东", "isp": "中国联通", "stock": "1", "amount": "10000", "maxprice": "0", "minprice": "0", "cityname": "深圳" } */ function getPositionByPhoneNo(phoneNo, succFunc) { $.ajax({ url: "http://virtual.paipai.com/extinfo/GetMobileProductInfo", type: "post", data: {mobile: phoneNo, amount: 10000}, dataType: "jsonp", jsonp: "callname", jsonpCallback: "getPhoneNumInfoExtCallback", success: function(data){ if(succFunc) { succFunc(data); } }, error: function(xhr, errorCode){ console.log("根据手机号获取归属地服务失败【前端】"); if(succFunc) { succFunc({}); } } }); } /** * 将数字金额进行千位分隔 * @param number 需要分隔的数字 * @return 返回分割后的数字 */ function formatFloatToThousand(number) { number = number.toString(); var resultArray = []; var pointPosi = number.indexOf("."); // 取得小数点的位置 var int = pointPosi == -1 ? number : number.substring(0, pointPosi); // 取得小数中的整数部分 var float = pointPosi == -1 ? ‘‘ : number.substring(pointPosi + 1, number.length); var remainSum = int.length % 3; // 超过 3 的位数 if(int.length < 3) { return number; } if(remainSum == 0) { resultArray = resultArray.concat(int.match(/\d{3}/g)); } else { resultArray.push(int.substring(0, remainSum)); int = int.substring(remainSum); resultArray = resultArray.concat(int.match(/\d{3}/g)); } return pointPosi == -1 ? resultArray.join(‘,‘) : resultArray.join(‘,‘) + ‘.‘ + float; } /** * 测量文本的宽度 * @param $source 需要测量文本宽度的 jquery 对象 */ function measureTxtWidth($source) { var txtWidth = null; var text = $source.text(); var $span = $("<span>" + text + "</span>").appendTo("body"); $span.css({whiteSpace: "nowrap", font: $source.css("font")}); txtWidth = $span.width(); $span.remove(); return txtWidth; } 使用新浪开放 api 获取当前位置: http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js 返回的数据格式如下: { "ret": 1, "start": "180.149.132.0", "end": "180.149.159.255", "country": "中国", // 国家 "province": "北京", // 省份 "city": "北京", // 城市 "district": "", "isp": "电信", // 运营商 "type": "企业", "desc": "中国电信集团电信" } /** * 获取地理定位信息,使用腾讯地图进行定位 * @param getSuccFunc 获取成功的回调函数回调函数 */ function getGeolocation(getSuccFunc) { var succResult = {}; // 请求位置成功的结果 var geolocation = new soso.maps.Geolocation(); var positionParam = { locationMode: "CLIENT_IP" // ip定位 }; var positionCallback = function(data, status){ if(status === "OK") { if(data && data.latLng) { succResult.latitude = data.latLng.lat; // 纬度 succResult.longitude = data.latLng.lng; // 经度 } } if(getSuccFunc) { getSuccFunc(succResult); } }; geolocation.position(positionParam, positionCallback); } /** * 将数字转换成字符串的通用方法 * 说明:直接使用 toFixed 方法会进行四舍五入,因此写一个将数字转换为指定小数位数字符串的方法 * @param sourceData 源数据 * @param decimalLen 小数的位数 */ function numberToString(sourceData, decimalLen) { decimalLen = typeof(decimalLen) == undefined ? 0 : decimalLen; var result = sourceData + ""; var integerStr = null; // 整数部分 var decimalStr = null; // 小数部分 if(result.indexOf(".") == -1) { result = Number(result).toFixed(decimalLen); } else { integerStr = result.substring(0, result.indexOf(".")); // 整数部分 decimalStr = /\.\d+/.exec(result); // 小数部分 decimalStr = Number(decimalStr); decimalStr = decimalStr.toPrecision(decimalLen).substr(0, decimalLen + 2); result = integerStr + decimalStr.substr(1); } return result; } /** * 根据电话号码获取位置信息,使用拍拍开放 api * @param phoneNo 电话号码 * @param succFunc 调用接口成功的回调函数 * 回调函数入参的数据格式如下: * { "mobile": "18576648552", "province": "广东", "isp": "中国联通", "stock": "1", "amount": "10000", "maxprice": "0", "minprice": "0", "cityname": "深圳" } */ function getPositionByPhoneNo(phoneNo, succFunc) { $.ajax({ url: "http://virtual.paipai.com/extinfo/GetMobileProductInfo", type: "post", data: {mobile: phoneNo, amount: 10000}, dataType: "jsonp", jsonp: "callname", jsonpCallback: "getPhoneNumInfoExtCallback", success: function(data){ if(succFunc) { succFunc(data); } }, error: function(xhr, errorCode){ console.log("根据手机号获取归属地服务失败【前端】"); } }); }
时间: 2024-11-04 08:42:47