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

📄 uri.js

📁 初学者
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.uri.Uri");dojo.uri = new function () {	this.dojoUri = function (uri) {		return new dojo.uri.Uri(dojo.hostenv.getBaseScriptUri(), uri);	};	this.moduleUri = function (module, uri) {		var loc = dojo.hostenv.getModuleSymbols(module).join("/");		if (!loc) {			return null;		}		if (loc.lastIndexOf("/") != loc.length - 1) {			loc += "/";		}		var colonIndex = loc.indexOf(":");		var slashIndex = loc.indexOf("/");		if (loc.charAt(0) != "/" && (colonIndex == -1 || colonIndex > slashIndex)) {			loc = dojo.hostenv.getBaseScriptUri() + loc;		}		return new dojo.uri.Uri(loc, uri);	};	this.Uri = function () {		var uri = arguments[0];		for (var i = 1; i < arguments.length; i++) {			if (!arguments[i]) {				continue;			}			var relobj = new dojo.uri.Uri(arguments[i].toString());			var uriobj = new dojo.uri.Uri(uri.toString());			if ((relobj.path == "") && (relobj.scheme == null) && (relobj.authority == null) && (relobj.query == null)) {				if (relobj.fragment != null) {					uriobj.fragment = relobj.fragment;				}				relobj = uriobj;			} else {				if (relobj.scheme == null) {					relobj.scheme = uriobj.scheme;					if (relobj.authority == null) {						relobj.authority = uriobj.authority;						if (relobj.path.charAt(0) != "/") {							var path = uriobj.path.substring(0, uriobj.path.lastIndexOf("/") + 1) + relobj.path;							var segs = path.split("/");							for (var j = 0; j < segs.length; j++) {								if (segs[j] == ".") {									if (j == segs.length - 1) {										segs[j] = "";									} else {										segs.splice(j, 1);										j--;									}								} else {									if (j > 0 && !(j == 1 && segs[0] == "") && segs[j] == ".." && segs[j - 1] != "..") {										if (j == segs.length - 1) {											segs.splice(j, 1);											segs[j - 1] = "";										} else {											segs.splice(j - 1, 2);											j -= 2;										}									}								}							}							relobj.path = segs.join("/");						}					}				}			}			uri = "";			if (relobj.scheme != null) {				uri += relobj.scheme + ":";			}			if (relobj.authority != null) {				uri += "//" + relobj.authority;			}			uri += relobj.path;			if (relobj.query != null) {				uri += "?" + relobj.query;			}			if (relobj.fragment != null) {				uri += "#" + relobj.fragment;			}		}		this.uri = uri.toString();		var regexp = "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";		var r = this.uri.match(new RegExp(regexp));		this.scheme = r[2] || (r[1] ? "" : null);		this.authority = r[4] || (r[3] ? "" : null);		this.path = r[5];		this.query = r[7] || (r[6] ? "" : null);		this.fragment = r[9] || (r[8] ? "" : null);		if (this.authority != null) {			regexp = "^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$";			r = this.authority.match(new RegExp(regexp));			this.user = r[3] || null;			this.password = r[4] || null;			this.host = r[5];			this.port = r[7] || null;		}		this.toString = function () {			return this.uri;		};	};};

⌨️ 快捷键说明

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