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

📄 selection.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.require("dojo.html.common");dojo.provide("dojo.html.selection");dojo.require("dojo.dom");dojo.require("dojo.lang.common");dojo.html.selectionType = {NONE:0, TEXT:1, CONTROL:2};dojo.html.clearSelection = function () {	var _window = dojo.global();	var _document = dojo.doc();	try {		if (_window["getSelection"]) {			if (dojo.render.html.safari) {				_window.getSelection().collapse();			} else {				_window.getSelection().removeAllRanges();			}		} else {			if (_document.selection) {				if (_document.selection.empty) {					_document.selection.empty();				} else {					if (_document.selection.clear) {						_document.selection.clear();					}				}			}		}		return true;	}	catch (e) {		dojo.debug(e);		return false;	}};dojo.html.disableSelection = function (element) {	element = dojo.byId(element) || dojo.body();	var h = dojo.render.html;	if (h.mozilla) {		element.style.MozUserSelect = "none";	} else {		if (h.safari) {			element.style.KhtmlUserSelect = "none";		} else {			if (h.ie) {				element.unselectable = "on";			} else {				return false;			}		}	}	return true;};dojo.html.enableSelection = function (element) {	element = dojo.byId(element) || dojo.body();	var h = dojo.render.html;	if (h.mozilla) {		element.style.MozUserSelect = "";	} else {		if (h.safari) {			element.style.KhtmlUserSelect = "";		} else {			if (h.ie) {				element.unselectable = "off";			} else {				return false;			}		}	}	return true;};dojo.html.selectElement = function (element) {	dojo.deprecated("dojo.html.selectElement", "replaced by dojo.html.selection.selectElementChildren", 0.5);};dojo.html.selectInputText = function (element) {	var _window = dojo.global();	var _document = dojo.doc();	element = dojo.byId(element);	if (_document["selection"] && dojo.body()["createTextRange"]) {		var range = element.createTextRange();		range.moveStart("character", 0);		range.moveEnd("character", element.value.length);		range.select();	} else {		if (_window["getSelection"]) {			var selection = _window.getSelection();			element.setSelectionRange(0, element.value.length);		}	}	element.focus();};dojo.html.isSelectionCollapsed = function () {	dojo.deprecated("dojo.html.isSelectionCollapsed", "replaced by dojo.html.selection.isCollapsed", 0.5);	return dojo.html.selection.isCollapsed();};dojo.lang.mixin(dojo.html.selection, {getType:function () {	if (dojo.doc()["selection"]) {		return dojo.html.selectionType[dojo.doc().selection.type.toUpperCase()];	} else {		var stype = dojo.html.selectionType.TEXT;		var oSel;		try {			oSel = dojo.global().getSelection();		}		catch (e) {		}		if (oSel && oSel.rangeCount == 1) {			var oRange = oSel.getRangeAt(0);			if (oRange.startContainer == oRange.endContainer && (oRange.endOffset - oRange.startOffset) == 1 && oRange.startContainer.nodeType != dojo.dom.TEXT_NODE) {				stype = dojo.html.selectionType.CONTROL;			}		}		return stype;	}}, isCollapsed:function () {	var _window = dojo.global();	var _document = dojo.doc();	if (_document["selection"]) {		return _document.selection.createRange().text == "";	} else {		if (_window["getSelection"]) {			var selection = _window.getSelection();			if (dojo.lang.isString(selection)) {				return selection == "";			} else {				return selection.isCollapsed || selection.toString() == "";			}		}	}}, getSelectedElement:function () {	if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {		if (dojo.doc()["selection"]) {			var range = dojo.doc().selection.createRange();			if (range && range.item) {				return dojo.doc().selection.createRange().item(0);			}		} else {			var selection = dojo.global().getSelection();			return selection.anchorNode.childNodes[selection.anchorOffset];		}	}}, getParentElement:function () {	if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {		var p = dojo.html.selection.getSelectedElement();		if (p) {			return p.parentNode;		}	} else {		if (dojo.doc()["selection"]) {			return dojo.doc().selection.createRange().parentElement();		} else {			var selection = dojo.global().getSelection();			if (selection) {				var node = selection.anchorNode;				while (node && node.nodeType != dojo.dom.ELEMENT_NODE) {					node = node.parentNode;				}				return node;			}		}	}}, getSelectedText:function () {	if (dojo.doc()["selection"]) {		if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {			return null;		}		return dojo.doc().selection.createRange().text;	} else {		var selection = dojo.global().getSelection();		if (selection) {			return selection.toString();		}	}}, getSelectedHtml:function () {	if (dojo.doc()["selection"]) {		if (dojo.html.selection.getType() == dojo.html.selectionType.CONTROL) {			return null;		}		return dojo.doc().selection.createRange().htmlText;	} else {		var selection = dojo.global().getSelection();		if (selection && selection.rangeCount) {			var frag = selection.getRangeAt(0).cloneContents();			var div = document.createElement("div");			div.appendChild(frag);			return div.innerHTML;		}		return null;	}}, hasAncestorElement:function (tagName) {	return (dojo.html.selection.getAncestorElement.apply(this, arguments) != null);}, getAncestorElement:function (tagName) {	var node = dojo.html.selection.getSelectedElement() || dojo.html.selection.getParentElement();	while (node) {		if (dojo.html.selection.isTag(node, arguments).length > 0) {			return node;		}		node = node.parentNode;	}	return null;}, isTag:function (node, tags) {	if (node && node.tagName) {		for (var i = 0; i < tags.length; i++) {			if (node.tagName.toLowerCase() == String(tags[i]).toLowerCase()) {				return String(tags[i]).toLowerCase();			}		}	}	return "";}, selectElement:function (element) {	var _window = dojo.global();	var _document = dojo.doc();	element = dojo.byId(element);	if (_document.selection && dojo.body().createTextRange) {		try {			var range = dojo.body().createControlRange();			range.addElement(element);			range.select();		}		catch (e) {			dojo.html.selection.selectElementChildren(element);		}	} else {		if (_window["getSelection"]) {			var selection = _window.getSelection();			if (selection["removeAllRanges"]) {				var range = _document.createRange();				range.selectNode(element);				selection.removeAllRanges();				selection.addRange(range);			}		}	}}, selectElementChildren:function (element) {	var _window = dojo.global();	var _document = dojo.doc();	element = dojo.byId(element);	if (_document.selection && dojo.body().createTextRange) {		var range = dojo.body().createTextRange();		range.moveToElementText(element);		range.select();	} else {		if (_window["getSelection"]) {			var selection = _window.getSelection();			if (selection["setBaseAndExtent"]) {				selection.setBaseAndExtent(element, 0, element, element.innerText.length - 1);			} else {				if (selection["selectAllChildren"]) {					selection.selectAllChildren(element);				}			}		}	}}, getBookmark:function () {	var bookmark;	var _document = dojo.doc();	if (_document["selection"]) {		var range = _document.selection.createRange();		bookmark = range.getBookmark();	} else {		var selection;		try {			selection = dojo.global().getSelection();		}		catch (e) {		}		if (selection) {			var range = selection.getRangeAt(0);			bookmark = range.cloneRange();		} else {			dojo.debug("No idea how to store the current selection for this browser!");		}	}	return bookmark;}, moveToBookmark:function (bookmark) {	var _document = dojo.doc();	if (_document["selection"]) {		var range = _document.selection.createRange();		range.moveToBookmark(bookmark);		range.select();	} else {		var selection;		try {			selection = dojo.global().getSelection();		}		catch (e) {		}		if (selection && selection["removeAllRanges"]) {			selection.removeAllRanges();			selection.addRange(bookmark);		} else {			dojo.debug("No idea how to restore selection for this browser!");		}	}}, collapse:function (beginning) {	if (dojo.global()["getSelection"]) {		var selection = dojo.global().getSelection();		if (selection.removeAllRanges) {			if (beginning) {				selection.collapseToStart();			} else {				selection.collapseToEnd();			}		} else {			dojo.global().getSelection().collapse(beginning);		}	} else {		if (dojo.doc().selection) {			var range = dojo.doc().selection.createRange();			range.collapse(beginning);			range.select();		}	}}, remove:function () {	if (dojo.doc().selection) {		var selection = dojo.doc().selection;		if (selection.type.toUpperCase() != "NONE") {			selection.clear();		}		return selection;	} else {		var selection = dojo.global().getSelection();		for (var i = 0; i < selection.rangeCount; i++) {			selection.getRangeAt(i).deleteContents();		}		return selection;	}}});

⌨️ 快捷键说明

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