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

📄 xobject.js

📁 一个免费的php的blog程序,很好用
💻 JS
字号:
// **********************************************************//// Copyright 2002-2003 Sebastian Werner// http://sebastian-werner.net// // Licensed under://// Attribution-NonCommercial-ShareAlike License 1.0// by CreativeCommon (http://creativecommons.org)//// Key License Terms:// * Attribution. //   The licensor permits others to copy, distribute, //   display, and perform the work. In return, licensees //   must give the original author credit.// * Noncommercial. //   The licensor permits others to copy, distribute, //   display, and perform the work. In return, licensees //   may not use the work for commercial purposes -- unless //   they get the licensor's permission.// * Share Alike. //   The licensor permits others to distribute derivative //   works only under a license identical to the one that //   governs the licensor's work.//// for details visit:// http://creativecommons.org/licenses/by-nc-sa/1.0///// **********************************************************// **********************************************************//  OBJECT// **********************************************************function xObject(config){  this.__initcore = function(config)  {    this.config = new xHash();    if (config) this.config.merge(config);    this.depend = new Array();    this.conflict = new Array();    this.conflictTable = new xHash();    this.conflictTable.set("show", "hide");    this.conflictTable.set("hide", "show");    this.conflictTable.set("setClass", "resetClass");  }  this.__initobj = function()  {    // Find Object...    if (this.config.get("object"))    {      this.obj = this.config.get("object");    }    if (this.config.get("name"))    {      this.obj = document.getElementById(this.config.get("name"));    }    else if (this.config.get("tagname"))    {      this.obj = document.createElement(this.config.get("tagname"));    }    else    {      this.obj = document.createElement("div");    }  }  this.__initcss = function()  {    // Map style to parent for easier access    this.css = this.obj.style;  }  this.__initproperties = function()  {  }  // ************************  // MANAGE OBJECT  // ************************  this.map = function(dest)  {    if (dest == null || typeof(dest) == "undefined")    {      document.body.appendChild(this.obj)    }    else if (typeof(dest) == "object")    {      dest.obj.appendChild(this.obj)    }  }      this.append = function(obj)  {    if (typeof(obj) != "object") return 1;        if (obj.append) obj=obj.obj;    this.obj.appendChild(obj);  }  // ************************  // MANAGE DEPENDANCIES...   //   ...AND CONFLICTS  // ************************  this.addDepend = function(xobj, event)  {    var pos, isin;        if (typeof(xobj.depend[event]) == "undefined")      xobj.depend[event] = new Array();    pos = xobj.depend[event].length;    isin = false;        for (var i=0; i<xobj.depend[event].length; i++)      if (xobj.depend[event][i] == this) isin = true;    if (!isin) xobj.depend[event][pos] = this;  }  this.addConflict = function(xobj, event)  {    var pos, isin;      if (typeof(xobj.conflict[event]) == "undefined")      xobj.conflict[event] = new Array();    pos = xobj.conflict[event].length;    isin = false;        for (var i=0; i<xobj.conflict[event].length; i++)      if (xobj.conflict[event][i] == this) isin = true;    if (!isin)    {      //_debug.msg("add conflict: event[" + event + "]; pos[" + pos + "]")      xobj.conflict[event][pos] = this;    }    }    this.checkDepend = function(event, options)  {    var optstring, cmd;        if (typeof(this.depend[event]) == "undefined") return 1;        optstring=""    for (var i=0; i<options.length; i++)    {      if (typeof(options[i]) == "string")        optstring = optstring + "'" + options[i] + "'";      else        optstring = optstring + options[i];      if ((i+1) < options.length)        optstring = optstring + ", "    }    for (var i=0; i<this.depend[event].length; i++)    {      cmd="this.depend[event][i]." + event + "(" + optstring + ")"      eval(cmd);    }  }  this.checkConflict = function(event, options)  {    var opposite, cmd, optstring;         if (typeof(this.conflict[event]) == "undefined") return 1;        opposite = this.conflictTable.get(event);        if (!opposite) return 1;        optstring=""    for (var i=0; i<options.length; i++)    {      if (typeof(options[i]) == "string")        optstring = optstring + "'" + options[i] + "'";      else        optstring = optstring + options[i];      if ((i+1) < options.length)        optstring = optstring + ", "    }    for (var i=0; i<this.conflict[event].length; i++)    {      cmd="this.conflict[event][i]." + opposite + "(" + optstring + ")"      //_debug.msg("conflict cmd: " + cmd)      eval(cmd);    }  }      this.checkTracer = function(event)  {    // Optionen (au遝r event) in neues Array kopieren    var options = new Array();    for (var i=1; i<arguments.length; i++) options[i-1] = arguments[i];        //_debug.msg("check tracer start: " + event)        this.checkConflict(event, options);    this.checkDepend(event, options);        //_debug.msg("check tracer finish: " + event)      }  // ************************  // MANAGE VISIBILITY  // ************************  this.hide = function()  {    this.css.visibility = "hidden";    this.checkTracer("hide");  }  this.show = function()  {    this.css.visibility = "visible";    this.checkTracer("show");  }  this.toggle = function()  {    if (this.css.visibility == "visible" || this.css.visibility == "")      this.hide();    else      this.show();  }  this.setClass = function(value)  {    this.obj.className = String(value);    this.checkTracer("setClass", value);      }  this.resetClass = function()  {    this.obj.className = "";  }  // ************************  // MANAGE OBJECT  // ************************  this.getStyle = function(key)  {    var value;    value = this.css[key];    if (typeof(value) == "undefined" || value == "")      if (document.defaultView && document.defaultView.getComputedStyle)        value = document.defaultView.getComputedStyle(this.obj, "").getPropertyValue(key);      else if (this.obj.currentStyle)      	value = this.obj.currentStyle[key];    return value;  }  this.getVisHeight = function()  {    return this.obj.offsetHeight;  }  this.getVisWidth = function()  {    return this.obj.offsetWidth;  }  this.getVisX = function()  {    var value=0;    var copy = this.obj;    while(copy.offsetParent)    {      value += copy.offsetLeft;      copy = copy.offsetParent;    }    return value;  }  this.getVisY = function()  {    var value=0;    var copy = this.obj;    while(copy.offsetParent)    {      value += copy.offsetTop;      copy = copy.offsetParent;    }    return value;  }      this.removeChilds = function()  {    // sch鰊er ist das ja so... tut aber nicht so richtig    // for(var j=0; j<this.obj.childNodes.length; j++)    //   this.obj.removeChild(this.obj.childNodes[j]);                   this.obj.innerHTML = "";    }        this.cssCheckSet = function(attribute, list, value)  {    var ok = false;    for (var i=0; i<list.length; i++)    {      if (list[i] == value)       {        ok = true;        break;      }      }        if (!ok) return 1;        this.css[attribute] = value;      }        this.setPosition = function(value)  {    var valid = [ "absolute", "relative", "fixed" ];    this.cssCheckSet("position", valid, value);  }    this.placeAbsolute = function()  {    this.setPosition("absolute");  }    this.placeRelative = function()  {    this.setPosition("relative");  }  this.placeFixed = function()  {    this.setPosition("fixed");  }    this.setDisplay = function(value)  {    var valid = [ "block", "none", "inline" ];    this.cssCheckSet("display", valid, value);   }    this.displayBlock = function()  {    this.setDisplay("block");  }    this.displayNone = function()  {    this.setDisplay("none");  }  this.displayInline = function()  {    this.setDisplay("inline");  }    // ************************  // INIT XOBJECT  // ************************  this.type = "xObject";  this.__initcore(config);  this.__initobj();  this.__initcss();  this.__initproperties();}

⌨️ 快捷键说明

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