fcktools_gecko.js
来自「国外很不错的一个开源OA系统Group-Office」· JavaScript 代码 · 共 235 行
JS
235 行
/* * FCKeditor - The text editor for Internet - http://www.fckeditor.net * Copyright (C) 2003-2007 Frederico Caldeira Knabben * * == BEGIN LICENSE == * * Licensed under the terms of any of the following licenses at your * choice: * * - GNU General Public License Version 2 or later (the "GPL") * http://www.gnu.org/licenses/gpl.html * * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") * http://www.gnu.org/licenses/lgpl.html * * - Mozilla Public License Version 1.1 or later (the "MPL") * http://www.mozilla.org/MPL/MPL-1.1.html * * == END LICENSE == * * Utility functions. (Gecko version). */FCKTools.CancelEvent = function( e ){ if ( e ) e.preventDefault() ;}FCKTools.DisableSelection = function( element ){ if ( FCKBrowserInfo.IsGecko ) element.style.MozUserSelect = 'none' ; // Gecko only. else element.style.userSelect = 'none' ; // CSS3 (not supported yet).}// Appends a CSS file to a document.FCKTools._AppendStyleSheet = function( documentElement, cssFileUrl ){ var e = documentElement.createElement( 'LINK' ) ; e.rel = 'stylesheet' ; e.type = 'text/css' ; e.href = cssFileUrl ; documentElement.getElementsByTagName("HEAD")[0].appendChild( e ) ; return e ;}// Removes all attributes and values from the element.FCKTools.ClearElementAttributes = function( element ){ // Loop throw all attributes in the element for ( var i = 0 ; i < element.attributes.length ; i++ ) { // Remove the element by name. element.removeAttribute( element.attributes[i].name, 0 ) ; // 0 : Case Insensitive }}// Returns an Array of strings with all defined in the elements inside another element.FCKTools.GetAllChildrenIds = function( parentElement ){ // Create the array that will hold all Ids. var aIds = new Array() ; // Define a recursive function that search for the Ids. var fGetIds = function( parent ) { for ( var i = 0 ; i < parent.childNodes.length ; i++ ) { var sId = parent.childNodes[i].id ; // Check if the Id is defined for the element. if ( sId && sId.length > 0 ) aIds[ aIds.length ] = sId ; // Recursive call. fGetIds( parent.childNodes[i] ) ; } } // Start the recursive calls. fGetIds( parentElement ) ; return aIds ;}// Replaces a tag with its contents. For example "<span>My <b>tag</b></span>"// will be replaced with "My <b>tag</b>".FCKTools.RemoveOuterTags = function( e ){ var oFragment = e.ownerDocument.createDocumentFragment() ; for ( var i = 0 ; i < e.childNodes.length ; i++ ) oFragment.appendChild( e.childNodes[i].cloneNode(true) ) ; e.parentNode.replaceChild( oFragment, e ) ;}FCKTools.CreateXmlObject = function( object ){ switch ( object ) { case 'XmlHttp' : return new XMLHttpRequest() ; case 'DOMDocument' : return document.implementation.createDocument( '', '', null ) ; } return null ;}FCKTools.GetScrollPosition = function( relativeWindow ){ return { X : relativeWindow.pageXOffset, Y : relativeWindow.pageYOffset } ;}FCKTools.AddEventListener = function( sourceObject, eventName, listener ){ sourceObject.addEventListener( eventName, listener, false ) ;}FCKTools.RemoveEventListener = function( sourceObject, eventName, listener ){ sourceObject.removeEventListener( eventName, listener, false ) ;}// Listeners attached with this function cannot be detached.FCKTools.AddEventListenerEx = function( sourceObject, eventName, listener, paramsArray ){ sourceObject.addEventListener( eventName, function( e ) { listener.apply( sourceObject, [ e ].concat( paramsArray || [] ) ) ; }, false ) ;}// Returns and object with the "Width" and "Height" properties.FCKTools.GetViewPaneSize = function( win ){ return { Width : win.innerWidth, Height : win.innerHeight } ;}FCKTools.SaveStyles = function( element ){ var oSavedStyles = new Object() ; if ( element.className.length > 0 ) { oSavedStyles.Class = element.className ; element.className = '' ; } var sInlineStyle = element.getAttribute( 'style' ) ; if ( sInlineStyle && sInlineStyle.length > 0 ) { oSavedStyles.Inline = sInlineStyle ; element.setAttribute( 'style', '', 0 ) ; // 0 : Case Insensitive } return oSavedStyles ;}FCKTools.RestoreStyles = function( element, savedStyles ){ element.className = savedStyles.Class || '' ; if ( savedStyles.Inline ) element.setAttribute( 'style', savedStyles.Inline, 0 ) ; // 0 : Case Insensitive else element.removeAttribute( 'style', 0 ) ;}FCKTools.RegisterDollarFunction = function( targetWindow ){ targetWindow.$ = function( id ) { return this.document.getElementById( id ) ; } ;}FCKTools.AppendElement = function( target, elementName ){ return target.appendChild( target.ownerDocument.createElement( elementName ) ) ;}// Get the coordinates of an element.// @el : The element to get the position.// @relativeWindow: The window to which we want the coordinates relative to.FCKTools.GetElementPosition = function( el, relativeWindow ){ // Initializes the Coordinates object that will be returned by the function. var c = { X:0, Y:0 } ; var oWindow = relativeWindow || window ; var oOwnerWindow = FCKTools.GetElementWindow( el ) ; // Loop throw the offset chain. while ( el ) { var sPosition = oOwnerWindow.getComputedStyle(el, '').position ; // Check for non "static" elements. // 'FCKConfig.FloatingPanelsZIndex' -- Submenus are under a positioned IFRAME. if ( sPosition && sPosition != 'static' && el.style.zIndex != FCKConfig.FloatingPanelsZIndex ) break ; c.X += el.offsetLeft - el.scrollLeft ; c.Y += el.offsetTop - el.scrollTop ; if ( el.offsetParent ) el = el.offsetParent ; else { if ( oOwnerWindow != oWindow ) { el = oOwnerWindow.frameElement ; if ( el ) oOwnerWindow = FCKTools.GetElementWindow( el ) ; } else { c.X += el.scrollLeft ; c.Y += el.scrollTop ; break ; } } } // Return the Coordinates object return c ;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?