📄 zapatec.js
字号:
/* * Demo showing how to concatenate all Zapatec scripts used in the application * into one file. * * Zapatec Suite has modular architecture to achieve maximum flexibility for * applications. Inclusion of only scripts that are used can save traffic and * increase performance. * * Zapatec don't provide concatenated scripts because there may be a lot of * different combinations. * * Basically you need to concatenate all files in the same order as they were * included and put result into zapatec.js file. To prevent attempts to include * different modules by internal Zapatec functions, set special * Zapatec.doNotInclude flag to true in the beginning of concatenated file. * * Note that some widgets may use auxiliary files. For example slider uses * H.html and V.html files that must be in the same directory together with * concatenated script. * * Copyright (c) 2004-2006 by Zapatec, Inc. * http://www.zapatec.com * 1700 MLK Way, Berkeley, California, * 94709, U.S.A. * All rights reserved. *//* $Id: zapatec.js 5895 2007-01-08 18:15:48Z ken $ *//* * Prevent attempts to include different modules by internal Zapatec functions. */Zapatec = function() {};Zapatec.doNotInclude = true;/* * Below are compressed files. *//* * zapatec.js */if (typeof Zapatec == 'undefined'){Zapatec = function(){};}Zapatec.zapatecPath = function(){var arrScripts = document.getElementsByTagName('script');for (var iScript = arrScripts.length - 1; iScript >= 0; iScript--){var strSrc = arrScripts[iScript].getAttribute('src');if (!strSrc){continue;}var arrTokens = strSrc.split('/');var strLastToken;if (Array.prototype.pop){strLastToken = arrTokens.pop();}else{strLastToken = arrTokens[arrTokens.length - 1];arrTokens.length -= 1;}if (strLastToken == 'zapatec.js'){return arrTokens.length ? arrTokens.join('/') + '/' : '';}}return '';}();Zapatec.include = function(strSrc, strId){if (Zapatec.doNotInclude){return;}document.write('<script type="text/javascript" src="' +strSrc + (typeof strId == 'string' ? '" id="' + strId : '') + '"></script>');};Zapatec.include(Zapatec.zapatecPath + 'utils.js', 'Zapatec.Utils');Zapatec.include(Zapatec.zapatecPath + 'zpeventdriven.js', 'Zapatec.EventDriven');Zapatec.include(Zapatec.zapatecPath + 'transport.js', 'Zapatec.Transport');Zapatec.include(Zapatec.zapatecPath + 'zpwidget.js', 'Zapatec.Widget');/* * utils.js */if (typeof Zapatec == 'undefined'){Zapatec ={};}Zapatec.ErrorHandler ={};Zapatec.ErrorHandler.setup = function(window, report_url){this.window = window;this.report_url = report_url;this.window.onerror = Zapatec.ErrorHandler.handleError;}Zapatec.ErrorHandler.handleError = function(desc, path, line){if (Zapatec.ErrorHandler.err_stack == undefined) Zapatec.ErrorHandler.err_stack = [];Zapatec.ErrorHandler.err_stack.push([desc, path, line]);return false;}Zapatec.ErrorHandler.getErrStack = function(){return Zapatec.ErrorHandler.err_stack;}Zapatec.Utils ={};Zapatec.Utils.getAbsolutePos = function(el, scrollOff){var SL = 0, ST = 0;if (!scrollOff){var is_div = /^div$/i.test(el.tagName);if (is_div && el.scrollLeft)SL = el.scrollLeft;if (is_div && el.scrollTop)ST = el.scrollTop;}var r ={x: el.offsetLeft - SL, y: el.offsetTop - ST};if (el.offsetParent){var tmp = this.getAbsolutePos(el.offsetParent);r.x += tmp.x;r.y += tmp.y;}return r;};Zapatec.Utils.getElementOffset = function(objElement){var iLeft = iTop = iWidth = iHeight = 0;if (objElement.getBoundingClientRect){var objRectangle = objElement.getBoundingClientRect();iLeft = objRectangle.left;iTop = objRectangle.top;iWidth = objRectangle.right - iLeft;iHeight = objRectangle.bottom - iTop;iLeft += Zapatec.Utils.getPageScrollX() - 2;iTop += Zapatec.Utils.getPageScrollY() - 2;}else if (document.getBoxObjectFor){var objRectangle = document.getBoxObjectFor(objElement);iLeft = objRectangle.x;iTop = objRectangle.y;iWidth = objRectangle.width;iHeight = objRectangle.height;}else{iWidth = objElement.offsetWidth;iHeight = objElement.offsetHeight;while (objElement.offsetParent){iLeft += objElement.offsetLeft;iTop += objElement.offsetTop;objElement = objElement.offsetParent;}}return{left: iLeft,top: iTop,x: iLeft,y: iTop,width: iWidth,height: iHeight};};Zapatec.Utils.getElementOffsetScrollable = function(objElement){var objPos = Zapatec.Utils.getElementOffset(objElement);var iLeft = objPos.left;if (objElement.scrollLeft){iLeft -= objElement.scrollLeft;}var iTop = objPos.top;if (objElement.scrollTop){iTop -= objElement.scrollTop;}return{left: iLeft, top: iTop, x: iLeft, y: iTop};};Zapatec.Utils.fixBoxPosition = function(box){if (box.x < 0)box.x = 0;if (box.y < 0)box.y = 0;var cp = Zapatec.Utils.createElement("div");var s = cp.style;s.position = "absolute";s.right = s.bottom = s.width = s.height = "0px";window.document.body.appendChild(cp);var br = Zapatec.Utils.getAbsolutePos(cp);window.document.body.removeChild(cp);if (Zapatec.is_ie){br.y += window.document.body.scrollTop;br.x += window.document.body.scrollLeft;}else{br.y += window.scrollY;br.x += window.scrollX;}var tmp = box.x + box.width - br.x;if (tmp > 0) box.x -= tmp;tmp = box.y + box.height - br.y;if (tmp > 0) box.y -= tmp;};Zapatec.Utils.isRelated = function (el, evt){evt || (evt = window.event);var related = evt.relatedTarget;if (!related){var type = evt.type;if (type == "mouseover"){related = evt.fromElement;}else if (type == "mouseout"){related = evt.toElement;}}try{while (related){if (related == el){return true;}related = related.parentNode;}}catch(e){};return false;};Zapatec.Utils.removeClass = function(el, className){if (!(el && el.className)){return;}var cls = el.className.split(" ");var ar = [];for (var i = cls.length; i > 0;){if (cls[--i] != className){ar[ar.length] = cls[i];}}el.className = ar.join(" ");};Zapatec.Utils.addClass = function(el, className){Zapatec.Utils.removeClass(el, className);el.className += " " + className;};Zapatec.Utils.getElement = function(ev){if (Zapatec.is_ie){return window.event.srcElement;}else{return ev.currentTarget;}};Zapatec.Utils.getTargetElement = function(ev){if (Zapatec.is_ie){return window.event.srcElement;}else{return ev.target;}};Zapatec.Utils.getMousePos = function(objEvent){var objPos ={pageX: 0,pageY: 0,clientX: 0,clientY: 0};var boolIsPageX = (typeof objEvent.pageX != 'undefined');var boolIsClientX = (typeof objEvent.clientX != 'undefined');objEvent || (objEvent = window.event);if (objEvent && (boolIsPageX || boolIsClientX)){if (boolIsPageX){objPos.pageX = objEvent.pageX;objPos.pageY = objEvent.pageY;}else{objPos.pageX = objEvent.clientX + Zapatec.Utils.getPageScrollX();objPos.pageY = objEvent.clientY + Zapatec.Utils.getPageScrollY();}if (boolIsClientX){objPos.clientX = objEvent.clientX;objPos.clientY = objEvent.clientY;}else{objPos.clientX = objEvent.pageX - Zapatec.Utils.getPageScrollX();objPos.clientY = objEvent.pageY - Zapatec.Utils.getPageScrollY();}}return objPos;};Zapatec.Utils.stopEvent = function(ev){ev || (ev = window.event);if (ev){if (Zapatec.is_ie){ev.cancelBubble = true;ev.returnValue = false;}else{ev.preventDefault();ev.stopPropagation();}}return false;};Zapatec.Utils.removeOnUnload = [];Zapatec.Utils.addEvent = function(el, evname, func, useCapture){if (el.addEventListener){if (!useCapture){useCapture = false;}el.addEventListener(evname, func, useCapture);}else if (el.attachEvent){el.detachEvent("on" + evname, func);el.attachEvent("on" + evname, func);if (useCapture){el.setCapture(false);}}else{el["on" + evname] = func;}Zapatec.Utils.removeOnUnload.push({"element" : el, "event" : evname, "listener" : func});};Zapatec.Utils.removeEvent = function(el, evname, func){if (el.detachEvent){el.detachEvent("on" + evname, func);}else if (el.removeEventListener){el.removeEventListener(evname, func, false);}else{el["on" + evname] = null;}};Zapatec.Utils.createElement = function(type, parent, selectable){var el = null;if (window.self.document.createElementNS)el = window.self.document.createElementNS("http://www.w3.org/1999/xhtml", type);elseel = document.createElement(type);if (typeof parent != "undefined" && parent != null)parent.appendChild(el);if (!selectable){if (Zapatec.is_ie)el.setAttribute("unselectable", true);if (Zapatec.is_gecko)el.style.setProperty("-moz-user-select", "none", "");}return el;};Zapatec.Utils.writeCookie = function(name, value, domain, path, exp_days){value = escape(value);var ck = name + "=" + value, exp;if (domain)ck += ";domain=" + domain;if (path)ck += ";path=" + path;if (exp_days){exp = new Date();exp.setTime(exp_days * 86400000 + exp.getTime());ck += ";expires=" + exp.toGMTString();}document.cookie = ck;};Zapatec.Utils.getCookie = function(name){var pattern = name + "=";var tokenPos = 0;while (tokenPos < document.cookie.length){var valuePos = tokenPos + pattern.length;if (document.cookie.substring(tokenPos, valuePos) == pattern){var endValuePos = document.cookie.indexOf(";", valuePos);if (endValuePos == -1){endValuePos = document.cookie.length;}return unescape(document.cookie.substring(valuePos, endValuePos));}tokenPos=document.cookie.indexOf(" ",tokenPos)+1;if (tokenPos == 0){break;}}return null;};Zapatec.Utils.makePref = function(obj){function stringify(val){if (typeof val == "object" && !val)return "null";else if (typeof val == "number" || typeof val == "boolean")return val;else if (typeof val == "string")return '"' + val.replace(/\x22/, "\\22") + '"';else return null;};var txt = "", i;for (i in obj)txt += (txt ? ",'" : "'") + i + "':" + stringify(obj[i]);return txt;};Zapatec.Utils.loadPref = function(txt){var obj = null;try{eval("obj={" + txt + "}");}catch(e){}return obj;};Zapatec.Utils.mergeObjects = function(dest, src){for (var i in src)dest[i] = src[i];};Zapatec.Utils.__wch_id = 0;Zapatec.Utils.createWCH = function(element){var f = null;element = element || window.self.document.body;if (Zapatec.is_ie && !Zapatec.is_ie5){var filter = 'filter:progid:DXImageTransform.Microsoft.alpha(style=0,opacity=0);';var id = "WCH" + (++Zapatec.Utils.__wch_id);element.insertAdjacentHTML('beforeEnd', '<iframe id="' + id + '" scroll="no" frameborder="0" ' +'style="z-index:0;position:absolute;visibility:hidden;' + filter +'border:0;top:0;left:0;width:0;height:0;" ' +'src="javascript:false;"></iframe>');f = window.self.document.getElementById(id);}return f;};Zapatec.Utils.setupWCH_el = function(f, el, el2){if (f){var pos = Zapatec.Utils.getAbsolutePos(el),X1 = pos.x,Y1 = pos.y,X2 = X1 + el.offsetWidth,Y2 = Y1 + el.offsetHeight;if (el2){var p2 = Zapatec.Utils.getAbsolutePos(el2),XX1 = p2.x,YY1 = p2.y,XX2 = XX1 + el2.offsetWidth,YY2 = YY1 + el2.offsetHeight;if (X1 > XX1)X1 = XX1;if (Y1 > YY1)Y1 = YY1;if (X2 < XX2)X2 = XX2;if (Y2 < YY2)Y2 = YY2;}Zapatec.Utils.setupWCH(f, X1, Y1, X2-X1, Y2-Y1);}};Zapatec.Utils.setupWCH = function(f, x, y, w, h){if (f){var s = f.style;(typeof x != "undefined") && (s.left = x + "px");(typeof y != "undefined") && (s.top = y + "px");(typeof w != "undefined") && (s.width = w + "px");(typeof h != "undefined") && (s.height = h + "px");s.visibility = "inherit";}};Zapatec.Utils.hideWCH = function(f){if (f)f.style.visibility = "hidden";};Zapatec.Utils.getPageScrollY = function(){if (window.pageYOffset){return window.pageYOffset;}else if (document.body && document.body.scrollTop){return document.body.scrollTop;}else if (document.documentElement && document.documentElement.scrollTop){return document.documentElement.scrollTop;}return 0;};Zapatec.Utils.getPageScrollX = function(){if (window.pageXOffset){return window.pageXOffset;}else if (document.body && document.body.scrollLeft){return document.body.scrollLeft;}else if (document.documentElement && document.documentElement.scrollLeft){return document.documentElement.scrollLeft;}return 0;};Zapatec.ScrollWithWindow ={};Zapatec.ScrollWithWindow.list = [];Zapatec.ScrollWithWindow.stickiness = 0.25;Zapatec.ScrollWithWindow.register = function(node){var top = node.offsetTop || 0;var left = node.offsetLeft || 0;var scrollY = Zapatec.Utils.getPageScrollY();var scrollX = Zapatec.Utils.getPageScrollX();top -= scrollY;left -= scrollX;Zapatec.ScrollWithWindow.list[Zapatec.ScrollWithWindow.list.length] ={node: node,origTop: top,origleft: left};};Zapatec.ScrollWithWindow.unregister = function(node){for (var count = 0; count < Zapatec.ScrollWithWindow.list.length; count++){var elm = Zapatec.ScrollWithWindow.list[count];if (node == elm.node){Zapatec.ScrollWithWindow.list.splice(count, 1);return;}}};Zapatec.ScrollWithWindow.handler = function(newScroll, direction){if (direction == "vertical"){var newScrollY = newScroll;oldScrollY += ((newScrollY - oldScrollY) * this.stickiness);if (Math.abs(oldScrollY - newScrollY) <= 1) oldScrollY = newScrollY;}else{var newScrollX = newScroll;oldScrollX += ((newScrollX - oldScrollX) * this.stickiness);if (Math.abs(oldScrollX - newScrollX) <= 1) oldScrollX = newScrollX;}for (var count = 0; count < Zapatec.ScrollWithWindow.list.length; count++){var elm = Zapatec.ScrollWithWindow.list[count];var node = elm.node;node.style.position = 'absolute';if (!elm.origTop && elm.origTop !== 0 && (direction == "vertical")){elm.origTop = parseInt(node.style.top) || 0;}if (!elm.origLeft && elm.origLeft !== 0 && (direction == "horizontal")){elm.origLeft = parseInt(node.style.left) || 0;}if (direction == "vertical"){node.style.top = (elm.origTop + parseInt(oldScrollY)) + 'px';}else{node.style.left = (elm.origLeft + parseInt(oldScrollX)) + 'px';}}};var oldScrollY = Zapatec.Utils.getPageScrollY();var oldScrollX = Zapatec.Utils.getPageScrollX();setInterval(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -