Javascript tree control script code _ javascript skills
Source: Internet
Author: User
Very nice js tree menu /*---------------------------------------------------------------------------*\
| Subject: JavaScript Framework
| Author: meizz
| Created: 2005-02-27
| Version: 2006-08-11
| -----------------------------------
| MSN: huangfr@msn.com QQ: 112889082
| Http://www.meizz.com Copyright (c) meizz MIT-style license
| The above copyright notice and this permission notice shall be
| Included in all copies or substantial portions of the Software
\*---------------------------------------------------------------------------*/
Window. System = function () {this. setHashCode ();}
System. MISSING_ARGUMENT = "Missing argument ";
System. ARGUMENT_PARSE_ERROR = "The argument cannot be parsed ";
System. NOT_SUPPORTED_XMLHTTP = "Your browser do not support XMLHttp ";
System. FILE_NOT_FOUND = "File not found ";
System. MISCODING = "Maybe file encoding is not ANSI or UTF-8 ";
System. NAMESPACE_ERROR = "nonstandard namespace ";
System. hashCounter = 0;
System. currentVersion = "20060811 ";
Var t = document. getElementsByTagName ("SCRIPT ");
T = (System. scriptElement = t [t. length-1]). src. replace (// \/g ,"/");
System. in1_ate = function (d, s) {for (var I in s) d [I] = s [I]; return d ;};
System. path = (t. lastIndexOf ("/") <0 )? ".": T. substring (0, t. lastIndexOf ("/"));
System. getUniqueId = function () {return "mz _" + (System. hashCounter ++). toString (36 );};
System. toHashCode = function (e)
{
If ("undefined "! = Typeof e. hashCode) return e. hashCode;
Return e. hashCode = System. getUniqueId ();
};
System. supportsXmlHttp = function ()
{
Return "object" = typeof (System. _ xmlHttp | (System. _ xmlHttp = new XMLHttpRequest ()));
};
System. _ getPrototype = function (namespace, argu)
{
If ("undefined" = typeof System. _ prototypes [namespace]) return new System ();
For (var a = [], I = 0; I return eval ("new (System. _ prototypes ['"+ namespace +"']) ("+. join (",") + ")");
};
System. ie = navigator. userAgent. indexOf ("MSIE")> 0 &&! Window. opera;
System. ns = navigator. vendor = "Netscape ";
System. _ alert = function (msg) {if (System. debug) alert (msg );};
System. _ parseResponseText = function (s)
{
If (null = s | "\ uFFFD" = s. charAt (0) {System. _ alert (System. MISCODING); return "";}
If ("\ xef" = s. charAt (0) s = s. substr (3); // for firefox
Return s. replace (/(^ | \ n) \ s * \/+ \ s * (Using | Import | Include) \ (\ "| \')) /g, "$1 $2 ");
};
If (window. ActiveXObject & (System. ie |! Window. XMLHttpRequest ))
{
Window. XMLHttpRequest = function ()
{
Var msxmls = ['msxml3', 'msxml2', 'Microsoft '], ex;
For (var I = 0; I Try {return new ActiveXObject (msxmls [I] + '. xmlhttp')} catch (ex ){}
System. _ xmlHttp = "mz"; throw new Error (System. NOT_SUPPORTED_XMLHTTP );
}
}
System. load = function (namespace, path)
{
Try
{
If (System. supportsXmlHttp () {path = System. _ mapPath (namespace, path );
Var x = System. _ xmlHttp; x. open ("GET", path, false); x. send (null );
If (x. readyState = 4)
{
If (x. status = 0 |/^ file \:/I. test (path ))
Return System. _ parseResponseText (x. responseText );
Else if (x. status == 200) return System. _ parseResponseText (x. responseText );
Else if (x. status = 404) System. _ alert (namespace + "\ n" + System. FILE_NOT_FOUND );
Else throw new Error (x. status + ":" + x. statusText );}
} Else System. _ alert (System. NOT_SUPPORTED_XMLHTTP );
}
Catch (ex) {System. _ alert (namespace + "\ n" + ex. message);} return "";
};
System. _ eval = function (namespace, path)
{
// Alert ("System. _ eval (\" "+ namespace +" \ ") = \ r \ n" + System. _ codebase [namespace]);
Trypolicif({execscript=window.exe cScript (System. _ codebase [namespace]); else
{
Var script = document. createElement ("SCRIPT"); script. type = "text/javascript ";
Script. innerHTML = "eval (System. _ codebase ['" + namespace + "']);";
Document. getElementsByTagName ("HEAD") [0]. appendChild (script );
SetTimeout (function () {script. parentNode. removeChild (script)}, 99 );
} Catch (ex) {System. _ alert ("Syntax error on load" + namespace );}
System. _ existences [namespace] = System. _ mapPath (namespace, path );
};
System. _ exist = function (namespace, path)
{
If ("undefined" = typeof System. _ existences [namespace]) return false;
Return System. _ existences [namespace] = System. _ mapPath (namespace, path );
};
System. _ mapPath = function (namespace, path)
{
If ("string" = typeof path & path. length> 3) return path. toLowerCase ();
Var p = (System. path + "/" + namespace. replace (/\./g, "/") + ". js? 1.1.9 "). toLowerCase ();
Return p + ("undefined" = typeof path | path )? "":"? T = "+ Math. random ());
};
Window. Using = function (namespace, path, rename)
{
If (System. _ exist (namespace, path )){
Var s = window [namespace. substr (namespace. lastIndexOf (".") + 1)];
If (s! = System. _ prototypes [namespace]) s = System. _ prototypes [namespace]; return}
Var code = namespace + "."; if (! /(^ | \.) [\ W \ $] +) + $/. test (namespace ))
Throw new Error (namespace + System. NAMESPACE_ERROR );
For (var I = code. indexOf ("."); I>-1; I = code. indexOf (".", I + 1 )){
Var e = code. substring (0, I), s = (e. indexOf (".") =-1 )? "Window [\" "+ e +" \ "]": e;
If (e & "undefined" = typeof (s )){
Eval (s + "= function () {return System. _ getPrototype (\" "+ e +" \ ", arguments )}");}}
If ("undefined" = typeof path & "string" = typeof System. _ codebase [namespace])
{
System. _ eval (namespace, path);} else {if (code = System. load (namespace, path )){
E = "$" + System. getUniqueId () + "_ id" + new Date (). getTime () + "$ ";
S = "function" + e + "() {\ r \ n" + code + "; \ r \ nSystem. _ prototypes ['";
Code = namespace. substr (namespace. lastIndexOf (".") + 1 );
S + = namespace + "'] = window ['" + (rename | code) + "'] =" + code + "; \ r \ n} "+ e + "();";
System. _ codebase [namespace] = s; s = ""; System. _ eval (namespace, path );}
}
};
Window. Import = function (namespace, path, rename) {Using (namespace, path, rename )};
Window. Instance = function (hashCode) {return System. _ instances [hashCode]};
Window. Include = function (namespace, path)
{
If (System. _ exist (namespace, path) return;
Var code; if (! /(^ | \.) [\ W \ $] +) + $/. test (namespace ))
Throw new Error (namespace + System. NAMESPACE_ERROR );
If ("undefined" = typeof path & "string" = typeof (System. _ codebase [namespace])
{
System. _ eval (namespace, path);} else if (System. supportsXmlHttp ()){
If (code = System. load (namespace, path) {System. _ codebase [namespace] = code;
System. _ eval (namespace, path) ;}} else {
Var script = document. createElement ("SCRIPT"); script. type = "text/javascript ";
Script. src = System. _ existences [namespace] = System. _ mapPath (namespace, path );
Document. getElementsByTagName ("HEAD") [0]. appendChild (script );
SetTimeout (function () {script. parentNode. removeChild (script)}, 99 );
}
};
Function. READ = 1; Function. WRITE = 2; Function. READ_WRITE = 3;
Function. prototype. addProperty = function (name, initValue, r_w)
{
Var capital = name. charAt (0). toUpperCase () + name. substr (1 );
R_w = r_w | Function. READ_WRITE; name = "_" + name; var p = this. prototype;
If ("undefined "! = Typeof initValue) p [name] = initValue;
If (r_w & Function. READ) p ["get" + capital] = function () {return this [name];};
If (r_w & Function. WRITE) p ["set" + capital] = function (v) {this [name] = v ;};
};
Function. prototype. Extends = function (SuperClass, ClassName)
{
Var op = this. prototype, I, p = this. prototype = new SuperClass ();
If (ClassName) p. _ className = ClassName; for (I in op) p [I] = op [I];
If (p. hashCode) delete System. _ instances [p. hashCode]; return p;
};
System. _ instances = {};
System. _ prototypes =
{
"System": System,
"System. Object": System,
"System. Event": System. Event
};
System. _ existences =
{
"System": System. _ mapPath ("System "),
"System. Event": System. _ mapPath ("System. Event "),
"System. Object": System. _ mapPath ("System. Object ")
};
T = System. Extends (Object, "System"); System. Object = System;
T. decontrol = function () {var t; if (t = this. hashCode) delete System. _ instances [t]};
T. addEventListeners = function (type, handle)
{
If ("function "! = Typeof handle)
Throw new Error (this + "addEventListener:" + handle + "is not a function ");
If (! This. _ listeners) this. _ listeners = {};
Var id = System. toHashCode (handle), t = this. _ listeners;
If ("object "! = Typeof t [type]) t [type] ={}; t [type] [id] = handle;
};
T. removeEventListener = function (type, handle)
{
If (! This. _ listeners) this. _ listeners = {}; var t = this. _ listeners;
If (! T [type]) return; var id = System. toHashCode (handle );
If (t [type] [id]) delete t [type] [id]; if (t [type]) delete t [type];
};
T. dispatchEvent = function (evt)
{
If (! This. _ listeners) this. _ listeners = {};
Var I, t = this. _ listeners, p = evt. type;
Evt.tar get = evt. srcElement = this; if (this [p]) this [p] (evt );
If ("object" = typeof t [p]) for (I in t [p]) t [p] [I]. call (this, evt );
Delete evt.tar get; delete evt. srcElement; return evt. returnValue;
};
T. setHashCode = function ()
{
System. _ instances [(this. hashCode = System. getUniqueId ()] = this;
};
T. getHashCode = function ()
{
If (! This. hashCode) this. setHashCode (); return this. hashCode;
};
T. toString = function () {return "[object" + (this. _ className | "Object") + "]" ;};
System. Event = function (type) {this. type = type ;};
T = System. Event. Extends (System, "System. Event ");
T. returnValue = true;
T. cancelBubble = false;
T.tar get = t. srcElement = null;
T. stopPropagation = function () {this. cancelBubble = true ;};
T. preventDefault = function () {this. returnValue = false ;};
If (System. ie &&! System. debug) Include ("System. Plugins. IE"); // IE UserData
If (window. opera) Include ("System. Plugins. Opera"); // Opera support
Include ("System. Global ");
The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion;
products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the
content of the page makes you feel confusing, please write us an email, we will handle the problem
within 5 days after receiving your email.
If you find any instances of plagiarism from the community, please send an email to:
info-contact@alibabacloud.com
and provide relevant evidence. A staff member will contact you within 5 working days.