搜索
系统检测到您的用户名不符合规范:

tp5模板中js方法中url函数传参的解决办法

浏览:1789 发布日期:2018年05月31日 分类:功能实现 关键字: 传参
tp5模板中js方法中url函数传参的解决办法
<script>
// js全局变量
window.core = {
baseUrl: "{:request()->root()}/",
route: ['{:request()->module()}', '{:request()->controller()}', '{:request()->action()}'],
tpl: {
root: '__ROOT__',
static: '__STATIC__',
img: '__IMG__',
js: '__JS__',
css: '__CSS__'
}
};
</script>/**
* @Author:Byron Sampson
* @Date:2018年4月17日
* @Last Modified by:byron
* @Last Modified time: 2018年4月17日
* +----------------------------------------------------------------------
* | F2eer [ 前端巴士 ]
* | Copyright (c) 2018-2019 http://www.f2eer.net All rights reserved.
* | Licensed ( http://www.f2eer.net/licenses/ )
* | Author: xiaobo.sun <xiaobo.sun@f2eer.net>
* +----------------------------------------------------------------------
*/
var core = window.core;

/* 基础对象检测 */
core || $.error("js-core基础配置没有正确加载!");

/**
* 解析URL
* @param {string} url 被解析的URL
* @return {object} 解析后的数据
*/
core.parse_url = function(url){
var parse = url.match(/^(?:([a-z]+):\/\/)?([\w-]+(?:\.[\w-]+)+)?(?::(\d+))?([\w-\/]+)?(?:\?((?:\w+=[^#&=\/]*)?(?:&\w+=[^#&=\/]*)*))?(?:#([\w-]+))?$/i);
parse || $.error("url格式不正确!");
return {
"scheme" : parse[1],
"host" : parse[2],
"port" : parse[3],
"path" : parse[4],
"query" : parse[5],
"fragment" : parse[6]
};
}

core.parse_str = function(str){
var value = str.split("&"), vars = {}, param;
for(val in value){
param = value[val].split("=");
vars[param[0]] = param[1];
}
return vars;
}

core.parse_name = function(name, type){
if(type){
/* 下划线转驼峰 */
name = name.replace(/_([a-z])/g, function(0,ドル 1ドル){
return 1ドル.toUpperCase();
});

/* 首字母大写 */
name = name.replace(/[a-z]/, function(0ドル){
return 0ドル.toUpperCase();
});
} else {
/* 大写字母转小写 */
name = name.replace(/[A-Z]/g, function(0ドル){
return "_" + 0ドル.toLowerCase();
});

/* 去掉首字符的下划线 */
if(0 === name.indexOf("_")){
name = name.substr(1);
}
}
return name;
}

//scheme://host:port/path?query#fragment
core.url = function(url, vars, suffix){
var info = this.parse_url(url), path = [], param = {}, reg;

/* 验证info */
info.path || $.error("url格式错误!");
url = info.path;

/* 解析URL */
path = url.split("/");
path = [path.pop(), path.pop(), path.pop()].reverse();

path[1] = path[1] || this.route[1];
path[0] = path[0] || this.route[0];

param[this.route[0]] = path[0];
param[this.route[1]] = path[1];
param[this.route[2]] = path[2].toLowerCase();

url = param[this.route[0]] + '/' + param[this.route[1]] + '/' + param[this.route[2]];

/* 解析参数 */
if(typeof vars === "string"){
vars = this.parse_str(vars);
} else if(!$.isPlainObject(vars)){
vars = {};
}

/* 添加伪静态后缀 */
if(false !== suffix){
suffix = suffix || 'html';
if(suffix){
url += "." + suffix;
}
}

/* 解析URL自带的参数 */
info.query && $.extend(vars, this.parse_str(info.query));
if(vars){
var param_str = $.param(vars);
if('' !== param_str) {
url += (url.indexOf('?') !== -1 ? '&' : '?') + param_str;
}
}

url = this.baseUrl + url;

return url;
}

/* 设置表单的值 */
core.setValue = function(name, value){
var first = name.substr(0,1), input, i = 0, val, len;
if(value === "") return;
if("#" === first || "." === first){
input = $(name);
} else {
input = $("[name='" + name + "']");
}

if(input.eq(0).is(":radio")) { //单选按钮
input.filter("[value='" + value + "']").each(function(){this.checked = true;});
} else if(input.eq(0).is(":checkbox")) { //复选框
if(!$.isArray(value)){
val = new Array();
val[0] = value;
} else {
val = value;
}
for(i = 0, len = val.length; i < len; i++){
input.filter("[value='" + val[i] + "']").each(function(){this.checked = true});
}
} else { //其他表单选项直接设置值
input.val(value);
}
}

/* 上移tr */
core.moveUp = function(tr) {
var current = $(tr); //获取当前<tr>
var prev = current.prev(); //获取当前<tr>前一个元素
if (current.index() > 0) {
current.insertBefore(prev); //插入到当前<tr>前一个元素前
}
}

/* 下移tr */
core.moveDown = function(tr) {
var current = $(tr); //获取当前<tr>
var next = current.next(); //获取当前<tr>后面一个元素
if (next) {
current.insertAfter(next); //插入到当前<tr>后面一个元素后面
}
}

/**
* 数字前置补零
* @param num
* @param length
* @returns {*}
*/
core.digit = function(num, length){
var str = '';
num = String(num);
length = length || 2;
for(var i = num.length; i < length; i++){
str += '0';
}
return num < Math.pow(10, length) ? str + (num|0) : num;
}

/**
* 格式化时间戳
* @param time
* @param format
* @returns {string}
*/
core.format_time = function(time, format){
// 处理长度为11位以内的时间戳
time = time.toString().length <= 11 ? parseInt(time) * 1000 : time;

var that = this
,date = new Date(time || new Date())
,ymd = [
that.digit(date.getFullYear(), 4)
,that.digit(date.getMonth() + 1)
,that.digit(date.getDate())
]
,hms = [
that.digit(date.getHours())
,that.digit(date.getMinutes())
,that.digit(date.getSeconds())
];

format = format || 'yyyy-MM-dd HH:mm:ss';

return format.replace(/yyyy/g, ymd[0])
.replace(/MM/g, ymd[1])
.replace(/dd/g, ymd[2])
.replace(/HH/g, hms[0])
.replace(/mm/g, hms[1])
.replace(/ss/g, hms[2]);
}
评论() 相关
收藏
indiboy
积分:5001 等级:LV4
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /