Quick UI 免费版 消除自带水印方法

下载地址

本人使用quickui-free_4.0.6版本 下载地址如下点击打开链接

开发背景

最近在看前端框架,偶然发现quick ui 框架不错,虽然渲染不如bootstrap, 但是对ie的兼容性不错。话不多说,根据文档 访问框架首页发现有个讨厌的水印:  

Quick UI 免费版 消除自带水印方法_第1张图片

调试发现有个未知的代码块如下:

Quick UI 免费版 消除自带水印方法_第2张图片

查询了整个工程也没找到id 为这个的代码,经过一系列跟踪发现他与cn.js这个有关,查询官网发现这是他们的授权文件,(都免费版干嘛要授权,吐槽一下),废话不多说,经过调试发现代码是这里生成的:

Quick UI 免费版 消除自带水印方法_第3张图片

我解析了一下这三个eval 大概如下:

var quiLangage = {
	    quiGrid: {
	        errorMessage: "发生错误",
	        pageStatMessage: "显示从{from}到{to},总 {total} 条 。每页显示:{pagesize}",
	        pageTextMessage: "Page",
	        loadingMessage: "加载中...",
	        findTextMessage: "查找",
	        noRecordMessage: "没有符合条件的记录存在",
	        isContinueByDataChanged: "数据已经改变,如果继续将丢失数据,是否继续?",
	        saveMessage: "保存",
	        applyMessage: "应用",
	        cancelMessage: "取消",
	        draggingMessage: "{count}行",
	        editorPromptMessage: "请选择"
	    },
	    select: {
	        promptMessage: "请选择",
	        noItemMessage: "无内容",
	        loadingMessage: "数据加载中...",
	        paramErrorMessage: "单选下拉框参数格式有误!(提示:json数据的属性和名称必须以双引号包围)",
	        dataErrorMessage: "单选下拉框data属性设置的数据格式有误!(提示:放在标签中的json数据的属性和名称必须以双引号包围)",
	        urlErrorMessage: "单选下拉框数据源出错,请检查url路径",
	        ldError: "无内容"
	    }
	};
	$(function() {
	    qflag();
	});
	function qflag() {
	    var a = 0;
	    var b = 0;
	    var now = new Date();
	    var year = now.getFullYear();
	    var month = now.getMonth() + 1;
	    var day = now.getDate();
	    var beginTime = year + "-" + month + "-" + day;
	    var endTime = "2017-5-1";
	    var deadTime = "2019-5-1";
	    var beginTimes = beginTime.substring(0, 10).split("-");
	    var endTimes = endTime.substring(0, 10).split("-");
	    var deadTimes = deadTime.substring(0, 10).split("-");
	    beginTime = beginTimes[1] + "/" + beginTimes[2] + "/" + beginTimes[0] + " " + beginTime.substring(10, 19);
	    endTime = endTimes[1] + "/" + endTimes[2] + "/" + endTimes[0] + " " + endTime.substring(10, 19);
	    deadTime = deadTimes[1] + "/" + deadTimes[2] + "/" + deadTimes[0] + " " + deadTime.substring(10, 19);
	    a = (Date.parse(endTime) - Date.parse(beginTime)) / 3600 / 1000;
	    b = (Date.parse(deadTime) - Date.parse(beginTime)) / 3600 / 1000;
	    if (a > 0 || a == 0) {
	        return true;
	    } else if (a < 0 && b > 0) {
	        if (top.document.getElementById("copyrightinfo")) {
	            $(top.document.getElementById("copyrightinfo")).remove();
	            $(top.document.body).append('
免费版
'); } else { $(top.document.body).append('
免费版
'); } return true; } else if (b < 0 || b == 0) { alert("授权过期,请联系QUICK UI官方获取新版"); return false; } } function getTypeFlage() { return "%u02D5%C8%D0%D9%D3%CB%C3%CF%D0%C7%D3"; };

O=function(m){
	return String.fromCharCode(Math.floor(m/10000)/99);
}

var l= function (x){
	return String.fromCharCode(x)  
}

这样就很清楚他们是怎么控制授权和制作水印的了,ok 原理明白直接重写第三个eval的qflag 方法。

大功告成完美无水印:

Quick UI 免费版 消除自带水印方法_第4张图片


重写的cn.js 文件下载地址如下 点击打开链接



你可能感兴趣的:(Quick UI 免费版 消除自带水印方法)