fckstylesloader.js
上传用户:li2971742
上传日期:2021-11-18
资源大小:39096k
文件大小:3k
源码类别:

OA系统

开发平台:

C#

  1. /*
  2.  * FCKeditor - The text editor for internet
  3.  * Copyright (C) 2003-2006 Frederico Caldeira Knabben
  4.  * 
  5.  * Licensed under the terms of the GNU Lesser General Public License:
  6.  *  http://www.opensource.org/licenses/lgpl-license.php
  7.  * 
  8.  * For further information visit:
  9.  *  http://www.fckeditor.net/
  10.  * 
  11.  * "Support Open Source software. What about a donation today?"
  12.  * 
  13.  * File Name: fckstylesloader.js
  14.  *  FCKStylesLoader Class: this class define objects that are responsible
  15.  *  for loading the styles defined in the XML file.
  16.  * 
  17.  * File Authors:
  18.  *  Frederico Caldeira Knabben (fredck@fckeditor.net)
  19.  */
  20. var FCKStylesLoader = function()
  21. {
  22. this.Styles = new Object() ;
  23. this.StyleGroups = new Object() ;
  24. this.Loaded = false ;
  25. this.HasObjectElements = false ;
  26. }
  27. FCKStylesLoader.prototype.Load = function( stylesXmlUrl )
  28. {
  29. // Load the XML file into a FCKXml object.
  30. var oXml = new FCKXml() ;
  31. oXml.LoadUrl( stylesXmlUrl ) ;
  32. // Get the "Style" nodes defined in the XML file.
  33. var aStyleNodes = oXml.SelectNodes( 'Styles/Style' ) ;
  34. // Add each style to our "Styles" collection.
  35. for ( var i = 0 ; i < aStyleNodes.length ; i++ )
  36. {
  37. var sElement = aStyleNodes[i].attributes.getNamedItem('element').value.toUpperCase() ;
  38. // Create the style definition object.
  39. var oStyleDef = new FCKStyleDef( aStyleNodes[i].attributes.getNamedItem('name').value, sElement ) ;
  40. if ( oStyleDef.IsObjectElement )
  41. this.HasObjectElements = true ;
  42. // Get the attributes defined for the style (if any).
  43. var aAttNodes = oXml.SelectNodes( 'Attribute', aStyleNodes[i] ) ;
  44. // Add the attributes to the style definition object.
  45. for ( var j = 0 ; j < aAttNodes.length ; j++ )
  46. {
  47. var sAttName = aAttNodes[j].attributes.getNamedItem('name').value ;
  48. var sAttValue = aAttNodes[j].attributes.getNamedItem('value').value ;
  49. // IE changes the "style" attribute value when applied to an element
  50. // so we must get the final resulting value (for comparision issues).
  51. if ( sAttName.toLowerCase() == 'style' )
  52. {
  53. var oTempE = document.createElement( 'SPAN' ) ;
  54. oTempE.style.cssText = sAttValue ;
  55. sAttValue = oTempE.style.cssText ;
  56. }
  57. oStyleDef.AddAttribute( sAttName, sAttValue ) ;
  58. }
  59. // Add the style to the "Styles" collection using it's name as the key.
  60. this.Styles[ oStyleDef.Name ] = oStyleDef ;
  61. // Add the style to the "StyleGroups" collection.
  62. var aGroup = this.StyleGroups[sElement] ;
  63. if ( aGroup == null )
  64. {
  65. this.StyleGroups[sElement] = new Array() ;
  66. aGroup = this.StyleGroups[sElement] ;
  67. }
  68. aGroup[aGroup.length] = oStyleDef ;
  69. }
  70. this.Loaded = true ;
  71. }