⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu-wizard.js

📁 zapatec suite 最新版 20070204,非常棒的ajax widgets 工具包
💻 JS
📖 第 1 页 / 共 4 页
字号:
  else    config.dropShadow = false;  config.showDelay = getConfigParam("f_showdelay", 0);  config.hideDelay = getConfigParam("f_hidedelay", 500);  config.animSpeed = getConfigParam("f_animspeed", 10);  return config;};/* functions that return the HTML code */function makeIndent(indent) {  var str = "";  while (indent-- > 0)    str += "    ";  return str;};function htmlEncode(str) {  str = str.replace(/&/ig, "&amp;");  str = str.replace(/</ig, "&lt;");  str = str.replace(/>/ig, "&gt;");  str = str.replace(/\x22/ig, "&quot;");  return str;};function checkOutputNode(node) {  if (!node.tagName || node.tagName == '!' /* IE anomaly */)    throw "Node has no tag";  if (node.className) {    if (/(^|\s)not-in-output(\s|$)/i.test(node.className))      throw "class: not-in-output";  }};function getHTML(indent, node, compact, noRoot) {  var html = "";  if (node.nodeType == 3) {    var str = node.data;    str = str.replace(/(^\s+|\s+$)/g, "");    if (str) {      if (!compact)        html += makeIndent(indent);      html += htmlEncode(str);      if (!compact)        html += "\n";    }    return html;  } else try {    checkOutputNode(node); // throws an exception if node shouldn't be displayed    var tag = node.tagName.toLowerCase();    if (!noRoot) {      html += makeIndent(indent) + "<" + tag;      var a = ["href", "target", "src", "rel", "type", "http-equiv", "content", "alt"];      for (var i = 0; i < a.length; ++i) {        if (!(tag == 'img' && a[i] == 'href')) { // IE bug          var val = node.getAttribute(a[i]);          if (tag=='img' && a[i]=='src')            val=node.getAttribute('zpPathRelative') || val          if (val)            html += ' ' + a[i] + '="' + val + '"';        }      }      if (node.id == "designMenu")        html += ' id="' + node.id + '"';      var enter = true;      if (!node.firstChild &&          /^(link|meta|img|br|hr)$/i.test(tag)) {        html += " />\n";        noRoot = true;        enter = false;      } else {        if (tag == 'ul' || tag == 'li') {          if (customClasses.customized(node)) {            html += ' class="' + customClasses.getClassName(node) + '"';          }        }        html += ">";      }      if (enter && !compact)        html += "\n";    }    for (var i = node.firstChild; i; i = i.nextSibling)      html += getHTML(indent + 1, i, compact);    if (!noRoot) {      if (!compact)        html += makeIndent(indent);      html += "</" + tag + ">";      html += "\n";    }    return html;  } catch(e) {    return "";  }};function getHeaders() {  var headers = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">\n';  headers += "<html>\n";  headers += makeIndent(1) + "<head>\n";  headers += makeIndent(2) + '<title>Javascript Menu By Zapatec</title>\n';  headers += makeIndent(2) + ('<!-- Works if this file is in the zpmenu folder. Adjust for other locations.-->\n\n');  headers += makeIndent(2) + ('<!-- Javascript modules required for the menu-->\n');  headers += makeIndent(2) + '<script src="utils/zapatec.js" type="text/javascript"></script>\n';  headers += makeIndent(2) + ('<!-- basic Javascript file for the menu-->\n');  headers += makeIndent(2) + '<script src="zpmenu/src/zpmenu.js" type="text/javascript"></script>\n';  var strCustomClasses = customClasses.getHeaders(makeIndent(2));  if (strCustomClasses) {    headers += strCustomClasses;  }  headers += makeIndent(1) + "</head>\n";  return(headers);}/* * Set the active theme for the  */function setActiveTheme(objSelectBox) {  strCurrentThemeName = objSelectBox.value;  doLook();};function getConfigParam(id, elDefault) {   var returnValue = elDefault;  var element = _el(id);  if (element) {    if (element.tagName.toLowerCase() == 'select') {      // selectbox      returnValue = element.value * 1; // convert to number    } else if (element.getAttribute('type').toLowerCase() == 'text') {      // text      var value = element.value;      value = value.replace(/[^\w-]/g, '');      if (value != '') {        returnValue = value;      }    } else {      // checkbox      returnValue = element.checked;    }  }   return returnValue;};/* * CustomClass class  */function CustomClass(cssStyle, cssFont, cssStyleHi, cssFontHi, isContainerClass, node) {  this.cssStyle = cssStyle;                 // Properties applied to item div  this.cssFont = cssFont;                   // Properties applied to item label  this.cssStyleHi = cssStyleHi;             // Properties applied to highlighted item  this.cssFontHi = cssFontHi;               // Properties applied to highlighted item label  this.isContainerClass = isContainerClass; // This is container class  this.node = node;                         // Item or container node};/* * CustomClasses class  */function CustomClasses() {  this.menuClass = new CustomClass('', '', '', ''); // Whole menu properties  this.classes = new Array();  this.styleSheet = new Zapatec.StyleSheet();  this.propertiesWind = new PropertiesWind();};CustomClasses.prototype.addClass = function(i, node, cssStyle, cssFont, cssStyleHi, cssFontHi, isContainerClass) {  if (i >= 0 && this.classes[i]) {    this.classes[i].cssStyle = cssStyle;    this.classes[i].cssFont = cssFont;    this.classes[i].cssStyleHi = cssStyleHi;    this.classes[i].cssFontHi = cssFontHi;    this.apply();  } else {    this.classes.push(new CustomClass(cssStyle, cssFont, cssStyleHi, cssFontHi, isContainerClass, node));    i = this.classes.length - 1;    Zapatec.Utils.addClass(node, 'zpMenuCust'+i);  }};CustomClasses.prototype.getClassName = function(node) {  var c = node.className;  if (c) {    var p = c.indexOf('zpMenuCust');    if (p >= 0) {      c = c.substring(p);      p = c.indexOf(' ');      if (p > 0) c = c.substring(0, p);      return c;    }  }  return '';};CustomClasses.prototype.getClassNumber = function(node) {  var cn = -1;  var c = node.className;  if (c) {    var p = c.indexOf('zpMenuCust');    if (p >= 0) {      cn = c.substring(p+10);      p = cn.indexOf(' ');      if (p > 0) cn = cn.substring(0, p);      cn *= 1;    }  }  return cn;};CustomClasses.prototype.customized = function(node) {  var cn = this.getClassNumber(node);  if (cn >= 0 && this.classes[cn]) {    var c = this.classes[cn];    if (c.cssStyle || c.cssFont || c.cssStyleHi || c.cssFontHi) {      return true;    }  }  return false;};CustomClasses.prototype.propertiesDialog = function(node, title, isContainerClass) {  var cssStyle = '';  var cssFont = '';  var cssStyleHi = '';  var cssFontHi = '';  var cn = this.getClassNumber(node);  if (cn>=0 && this.classes[cn]) {    cssStyle = this.classes[cn].cssStyle;    cssFont = this.classes[cn].cssFont;    cssStyleHi = this.classes[cn].cssStyleHi;    cssFontHi = this.classes[cn].cssFontHi;  }  var self = this;  this.propertiesWind.show(cssStyle, cssFont, cssStyleHi, cssFontHi, title, false,    function(cssStyle, cssFont, cssStyleHi, cssFontHi) {      self.addClass(cn, node, cssStyle, cssFont, cssStyleHi, cssFontHi, isContainerClass);      doLook(); // Redraw menu    }  );};CustomClasses.prototype.propertiesDialogLi = function(node) {  this.propertiesDialog(node, 'Menu Item Properties', false);};CustomClasses.prototype.propertiesDialogUl = function(node) {  this.propertiesDialog(node, 'Sub-Menu Properties', true);};CustomClasses.prototype.propertiesDialogMenu = function() {  var self = this;  var mc = this.menuClass;  this.propertiesWind.show(mc.cssStyle, mc.cssFont, mc.cssStyleHi, mc.cssFontHi, 'Menu Properties', true,    function(cssStyle, cssFont, cssStyleHi, cssFontHi) {      mc.cssStyle = cssStyle;      mc.cssFont = cssFont;      mc.cssStyleHi = cssStyleHi;      mc.cssFontHi = cssFontHi;      self.apply();      doLook(); // Redraw menu    }  );};CustomClasses.prototype.apply = function() {  var ss = this.styleSheet;  ss.removeRules(); // Clean style sheet  var mc = this.menuClass;  // Check if menu is initialized  if (!contentsMenu) {    return;  }  // Get class name prefix  var strClassName = '.' + contentsMenu.getClassName({prefix: 'zpMenu'}) +   ' .zpMenuContainer';  // Apply custom properties to whole menu  if (mc.cssStyle) {    ss.addRule(strClassName + ' .zpMenu-item', mc.cssStyle);    ss.addRule(strClassName + ' .zpMenuContainer .zpMenu-item', mc.cssStyle);  }  if (mc.cssFont) {    ss.addRule(strClassName + ' .zpMenu-item .zpMenu-label', mc.cssFont);    ss.addRule(strClassName + ' .zpMenu-item a', mc.cssFont);    ss.addRule(strClassName + ' .zpMenuContainer .zpMenu-item .zpMenu-label',     mc.cssFont);    ss.addRule(strClassName + ' .zpMenuContainer .zpMenu-item a', mc.cssFont);  }  if (mc.cssStyleHi) {    ss.addRule(strClassName + ' .zpMenu-item-selected', mc.cssStyleHi);    ss.addRule(strClassName + ' .zpMenuContainer .zpMenu-item-selected',     mc.cssStyleHi);  }  if (mc.cssFontHi) {    ss.addRule(strClassName + ' .zpMenu-item-selected .zpMenu-label',     mc.cssFontHi);    ss.addRule(strClassName + ' .zpMenu-item-selected a', mc.cssFontHi);    ss.addRule(strClassName +     ' .zpMenuContainer .zpMenu-item-selected .zpMenu-label', mc.cssFontHi);    ss.addRule(strClassName + ' .zpMenuContainer .zpMenu-item-selected a',     mc.cssFontHi);  }  // Apply custom properties to items  for (var i=0; i<this.classes.length; i++) {    var ci = this.classes[i];    if (ci.cssStyle) {      ss.addRule(strClassName + ' .zpMenuCust'+i, ci.cssStyle);      ss.addRule(strClassName + ' .zpMenuContainer .zpMenuCust'+i, ci.cssStyle);      if (ci.isContainerClass) {        ss.addRule(strClassName + ' .zpMenuCust'+i+' .zpMenuContainer',         ci.cssStyle);        ss.addRule(strClassName + ' .zpMenuContainer .zpMenuCust' + i +         ' .zpMenuContainer', ci.cssStyle);      }    }    if (ci.cssFont) {      ss.addRule(strClassName + ' .zpMenuCust' + i + ' .zpMenu-label',       ci.cssFont);      ss.addRule(strClassName + ' .zpMenuCust' + i + ' a', ci.cssFont);      ss.addRule(strClassName + ' .zpMenuContainer .zpMenuCust' + i +       ' .zpMenu-label', ci.cssFont);      ss.addRule(strClassName + ' .zpMenuContainer .zpMenuCust' + i +       ' a', ci.cssFont);    }  }};CustomClasses.prototype.unApply = function() {  this.styleSheet.removeRules(); // Clean style sheet};CustomClasses.prototype.getHeaders = function(indent) {  // Check if menu is initialized  if (!contentsMenu) {    return;  }  // Get class name prefix  var strClassName = '.' + contentsMenu.getClassName({prefix: 'zpMenu'}) +   ' .zpMenuContainer';  // Form headers  var headers = '';  if (this.classes.length > 0 || this.menuClass.cssStyle || this.menuClass.cssFont) {    var indentpp = indent + makeIndent(1);    var mc = this.menuClass;    if (mc.cssStyle) {      headers += indentpp + strClassName + ' .zpMenu-item { '+mc.cssStyle+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item { '+mc.cssStyle+' }\n';    }    if (mc.cssFont) {      headers += indentpp + strClassName + ' .zpMenu-item .zpMenu-label { '+mc.cssFont+' }\n';      headers += indentpp + strClassName + ' .zpMenu-item a { '+mc.cssFont+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item .zpMenu-label { '+mc.cssFont+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item a { '+mc.cssFont+' }\n';    }    if (mc.cssStyleHi) {      headers += indentpp + strClassName + ' .zpMenu-item-selected { '+mc.cssStyleHi+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item-selected { '+mc.cssStyleHi+' }\n';    }    if (mc.cssFontHi) {      headers += indentpp + strClassName + ' .zpMenu-item-selected .zpMenu-label { '+mc.cssFontHi+' }\n';      headers += indentpp + strClassName + ' .zpMenu-item-selected a { '+mc.cssFontHi+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item-selected .zpMenu-label { '+mc.cssFontHi+' }\n';      headers += indentpp + strClassName + ' .zpMenuContainer .zpMenu-item-selected a { '+mc.cssFontHi+' }\n';    }    for (var i=0; i<this.classes.length; i++) {      var ci = this.classes[i];      if (ci.cssStyle) {        headers += indentpp + strClassName + ' .zpMenuCust'+i+' { '+ci.cssStyle+' }\n';        headers += indentpp + strClassName + ' .zpMenuContainer .zpMenuCust'+i+' { '+ci.cssStyle+' }\n';        if (ci.isContainerClass) {          headers += indentpp + strClassName + ' .zpMenuCust'+i+' .zpMenuContainer { '+ci.cssStyle+' }\n';          headers += indentpp + strClassName + ' .zpMenuContainer .zpMenuCust'+i+' .zpMenuContainer { '+ci.cssStyle+' }\n';        }      }      if (ci.cssFont) {        headers += indentpp + strClassName + ' .zpMenuCust'+i+' .zpMenu-label { '+ci.cssFont+' }\n';        headers += indentpp + strClassName + ' .zpMenuCust'+i+' a { '+ci.cssFont+' }\n';        headers += indentpp + strClassName + ' .zpMenuContainer .zpMenuCust'+i+' .zpMenu-label { '+ci.cssFont+' }\n';        headers += indentpp + strClassName + ' .zpMenuContainer .zpMenuCust'+i+' a { '+ci.cssFont+' }\n';      }    }  }  if (headers) {    headers = indent + '<style type="text/css">\n' + headers + indent + '</style>\n';  }  return headers;};/* * Wind class */function Wind(id, title) {  this.div = null;  this.titleDiv = null;  if (arguments.length > 0) {    this.init(id, title);  }};Wind.prototype.init = function(id, title) {  this.div = _el(id);  var st = this.div.style;  st.position = 'absolute';  st.zIndex = 10;  this.titleDiv = _el(id + 'Title');  if (this.titleDiv) {    for (var i = 0; i < this.titleDiv.childNodes.length; i++) {      this.titleDiv.removeChild(this.titleDiv.childNodes[i]);    }    this.titleDiv.appendChild(document.createTextNode(title));  }  this.dragging = false;  this.xOffs = 0;  this.yOffs = 0;  var self = this;  Zapatec.Utils.addEvent(window.document, "mousedown",    function(ev) { return self.dragStart(ev, self) });  Zapatec.Utils.addEvent(window.document, "mousemove",    function(ev) { return self.dragMove(ev, self) });  Zapatec.Utils.addEvent(window.document, "mouseup",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -