/*! * jQuery Cookie Plugin v1.4.1 * https://github.com/carhartl/jquery-cookie * * Copyright 2013 Klaus Hartl * Released under the MIT license */ (function (factory) { if (typeof define === 'function' && define.amd) { // AMD define(['jquery'], factory); } else if (typeof exports === 'object') { // CommonJS factory(require('jquery')); } else { // Browser globals factory(jQuery); } }(function ($) { var pluses = /\+/g; function encode(s) { return config.raw ? s : encodeURIComponent(s); } function decode(s) { return config.raw ? s : decodeURIComponent(s); } function stringifyCookieValue(value) { return encode(config.json ? JSON.stringify(value) : String(value)); } function parseCookieValue(s) { if (s.indexOf('"') === 0) { // This is a quoted cookie as according to RFC2068, unescape... s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\'); } try { // Replace server-side written pluses with spaces. // If we can't decode the cookie, ignore it, it's unusable. // If we can't parse the cookie, ignore it, it's unusable. s = decodeURIComponent(s.replace(pluses, ' ')); return config.json ? JSON.parse(s) : s; } catch (e) { } } function read(s, converter) { var value = config.raw ? s : parseCookieValue(s); return $.isFunction(converter) ? converter(value) : value; } var config = $.cookie = function (key, value, options) { // Write if (value !== undefined && !$.isFunction(value)) { options = $.extend({}, config.defaults, options); if (typeof options.expires === 'number') { var days = options.expires, t = options.expires = new Date(); t.setTime(+t + days * 864e+5); } return (document.cookie = [ encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : '' ].join('')); } // Read var result = key ? undefined : {}; // To prevent the for loop in the first place assign an empty array // in case there are no cookies at all. Also prevents odd result when // calling $.cookie(). var cookies = document.cookie ? document.cookie.split('; ') : []; for (var i = 0, l = cookies.length; i < l; i++) { var parts = cookies[i].split('='); var name = decode(parts.shift()); var cookie = parts.join('='); if (key && key === name) { // If second argument (value) is a function it's a converter... result = read(cookie, value); break; } // Prevent storing a cookie that we couldn't decode. if (!key && (cookie = read(cookie)) !== undefined) { result[name] = cookie; } } return result; }; config.defaults = {}; $.removeCookie = function (key, options) { if ($.cookie(key) === undefined) { return false; } // Must not alter options, thus extending a fresh object... $.cookie(key, '', $.extend({}, options, { expires: -1 })); return !$.cookie(key); }; })); (function ($) { $.getUrlParam = function (name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) return decodeURI(r[2]); return null; }; //知识点划线处理 $.MarkKnowledge = function (htmls, Knowledge) { var WordReg = ""; var reg = /[>]([^<>]*)[<]/gi; htmls = htmls.replace(reg, function (match, group) { var matchVal = group; //var matchVal = " " + group + " "; if (matchVal.replace(/\s*/gi, "").length != 0) { for (var n = 0; n < Knowledge.length; n++) { if (Knowledge[n] != "--") { Knowledge[n] = Knowledge[n].replace("(", "").replace(")", ""); WordReg = "(\"|'|\\s|\\b|[^@]){1}(" + Knowledge[n] + ")(d|ed|s|es|er|ers|ing)?(,|\\.|\\?|'|\"|\\s){1}"; var RegWord = new RegExp(WordReg, 'i'); matchVal = matchVal.replace(RegWord, " $1#¥@$2#¥@$3$4 "); if (matchVal != group) { group = matchVal; Knowledge[n] = "--"; } } } //去掉未能标志的知识点标志 //matchVal = matchVal.replace(/#¥@(\w+\s*-?\w+\s*-?\w+)#¥@(d|ed|s|es|er|ers|ing)?/gi, "$1$2") matchVal = matchVal.replace(/#¥@((\w+\s*-?)+)#¥@(d|ed|s|es|er|ers|ing)?/gi, "$1$3") matchVal = matchVal.replace(/#¥@/g, ""); return ">" + matchVal + "<"; } else { return match; } }); return htmls; } //将页面视图转换成HTML格式 $.HTMLDecode = function (text) { var s = ""; if (text.length == 0) return ""; s = text.replace(/
/ig, "\r\n"); s = s.replace(/
/ig, "\r\n"); s = s.replace(/"/g, "\""); s = s.replace(/'/g, "\'"); s = s.replace(/ /g, " "); s = s.replace(/>/g, ">"); s = s.replace(/</g, "<"); s = s.replace(/&_br/ig, "\n"); s = s.replace(/&/g, "&"); return s; } //转换成HTML标签的特殊字符 $.HTMLEncode = function (html) { var s = ""; if (html.length == 0) return ""; s = html.replace(/&/ig, "&"); s = s.replace(//ig, ">"); s = s.replace(/ /ig, " "); s = s.replace(/\'/ig, "'"); s = s.replace(/\"/ig, """); s = s.replace(/\r/ig, ""); s = s.replace(/\n/ig, "
"); return s; } $.SendEncode = function (text) { var s = ""; if (text.length == 0) return ""; s = text.replace(/&/ig, "#__amp__#"); s = s.replace(//ig, "#__gt__#"); return s; } //用模版加载数据 //模板ID 数据模型 作用对象ID 是否拼接 $.DataTemplate = function (TemplateID, data, ListID, isAppend) { //用jquery获取模板 var source = $("#" + TemplateID).html(); //拓展方法 Handlebars.registerHelper("compare", function (v1, v2, v3, options) { if (v1 >= v2 && v1 <= v3) { //满足添加继续执行 return options.fn(this); } else { //不满足条件执行{{else}}部分 return options.inverse(this); } }); Handlebars.registerHelper("equals", function (v1, v2, options) { if (v1 == v2) { //满足添加继续执行 return options.fn(this); } else { //不满足条件执行{{else}}部分 return options.inverse(this); } }); Handlebars.registerHelper('breaklines', function (text) { text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/(\r\n|\n|\r)/gm, '
'); return new Handlebars.SafeString(text); }); Handlebars.registerHelper('substring', function (text, num) { text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/\<BR>/gi, "__") text = GetStrOfLength(text, num); return new Handlebars.SafeString(text); }); Handlebars.registerHelper('substringHtml', function (text, num) { text = HTMLDecode(text); text = unescape(text); text = GetStrOfLength(text, num); text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/\<BR>/gi, "__"); return new Handlebars.SafeString(text); }); //注册一个Handlebars Helper,用来将索引+1,因为默认是从0开始的 Handlebars.registerHelper("addOne", function (index, options) { return parseInt(index) + 1; }); //注册一个翻译用的Helper,将index翻译成A,B,C... Handlebars.registerHelper("Transindex", function (index, options) { index = parseInt(index); var x = String.fromCharCode(index + 1 + 64); return x; }); //预编译模板 var template = Handlebars.compile(source); //匹配json内容 var html = template(data); //填充数据UI if (isAppend) { $("#" + ListID).append(html); } else { $("#" + ListID).html(html); } } $.GetTemplate = function (TemplateID, tmpdata, path) { var source = $("#" + TemplateID).html(); $.each(tmpdata, function (index, ele) { this.Path = path + "," + this.DirID + "|" + this.DirName; }); Handlebars.registerHelper("compare", function (v1, v2, v3, options) { if (v1 >= v2 && v1 <= v3) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper("equals", function (v1, v2, options) { if (v1 == v2) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper('substring', function (text, num) { text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/\<BR>/gi, "__") text = GetStrOfLength(text, num); return new Handlebars.SafeString(text); }); var template = Handlebars.compile(source); var html = template(tmpdata); return html; } $.AppendTemplate = function (TemplateID, data, ListID) { var source = $("#" + TemplateID).html(); Handlebars.registerHelper("compare", function (v1, v2, v3, options) { if (v1 >= v2 && v1 <= v3) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper("equals", function (v1, v2, options) { if (v1 == v2) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper("contains", function (value, options) { if ($.inArray(value, window.timeLineArr) == -1) { window.timeLineArr.push(value); return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper('substring', function (text, num) { text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/\<BR>/gi, "__") text = GetStrOfLength(text, num); return new Handlebars.SafeString(text); }); var template = Handlebars.compile(source); var html = template(data); $("#" + ListID).append(html); } $.RenderMainViewTemplate = function (TemplateID, datatemp, ListID) { var source = $("#" + TemplateID).html(); $.each(datatemp, function (index, item) { var temp = item.ImporKnText.split("|").slice(1, 4); var theme = this.ThemeText; var themeName = ""; var arr = []; var docImage = ""; $.each($.ThemeListMaps, function (ix, it) { themeName = this.ThemeText; }); $.each(temp, function (ix, it) { if (it != "") { arr.push({ knowledge: it }); } }); switch (this.ResType) { case "1": case "2": docImage = "/Images/Icon/u1582.png"; break; case "3": case "5": docImage = "/Images/Icon/u1450.png"; break; case "4": case "6": docImage = "/Images/Icon/u1545.png"; break; default: docImage = "/Images/Icon/u1582.png"; break; } this.categoryName = $("#CategoryItemContainer .CategoryItem .SelectedItem").attr("title"); this.docImage = docImage; this.ThemeName = themeName; this.IcoPath = this.IcoPath || "/Images/Icon/u1468.png"; this.Knowledge = arr; this.Index = index + 1; }); Handlebars.registerHelper("compare", function (v1, v2, v3, options) { if (v1 >= v2 && v1 <= v3) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper("equals", function (v1, v2, options) { if (v1 == v2) { return options.fn(this); } else { return options.inverse(this); } }); Handlebars.registerHelper('substring', function (text, num) { text = Handlebars.Utils.escapeExpression(text); text = text.toString(); text = text.replace(/\<BR>/gi, "__") text = GetStrOfLength(text, num); return new Handlebars.SafeString(text); }); var template = Handlebars.compile(source); var html = template(datatemp); $("#" + ListID).html(html); } String.prototype.trim = function () { return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.ltrim = function () { return this.replace(/(^\s*)/g, ""); } String.prototype.rtrim = function () { return this.replace(/(\s*$)/g, ""); } $.browserVersion = (function () { var userAgent = navigator && navigator.userAgent || ""; if ((/(msie)/i).test(userAgent)) { return (userAgent.split(";")[1]).trim(); } else { return "Advanced Browser."; } })(); $.CompatibleOffsetX = function (event) { var evt = event || window.event; var srcObj = evt.target || evt.srcElement; if (evt.offsetX) { return evt.offsetX; } else { var rect = srcObj.getBoundingClientRect(); var clientx = evt.clientX; return clientx - rect.left; } } $.PlaceholderSupport = (function () { var test = document.createElement('input'); return ('placeholder' in test); })(); })(jQuery);