fckshowblocks.js
上传用户:dbstep
上传日期:2022-08-06
资源大小:2803k
文件大小:2k
源码类别:

WEB源码(ASP,PHP,...)

开发平台:

ASP/ASPX

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2009 Frederico Caldeira Knabben
  4.  *
  5.  * == BEGIN LICENSE ==
  6.  *
  7.  * Licensed under the terms of any of the following licenses at your
  8.  * choice:
  9.  *
  10.  *  - GNU General Public License Version 2 or later (the "GPL")
  11.  *    http://www.gnu.org/licenses/gpl.html
  12.  *
  13.  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
  14.  *    http://www.gnu.org/licenses/lgpl.html
  15.  *
  16.  *  - Mozilla Public License Version 1.1 or later (the "MPL")
  17.  *    http://www.mozilla.org/MPL/MPL-1.1.html
  18.  *
  19.  * == END LICENSE ==
  20.  *
  21.  * FCKShowBlockCommand Class: the "Show Blocks" command.
  22.  */
  23. var FCKShowBlockCommand = function( name, defaultState )
  24. {
  25. this.Name = name ;
  26. if ( defaultState != undefined )
  27. this._SavedState = defaultState ;
  28. else
  29. this._SavedState = null ;
  30. }
  31. FCKShowBlockCommand.prototype.Execute = function()
  32. {
  33. var state = this.GetState() ;
  34. if ( state == FCK_TRISTATE_DISABLED )
  35. return ;
  36. var body = FCK.EditorDocument.body ;
  37. if ( state == FCK_TRISTATE_ON )
  38. body.className = body.className.replace( /(^| )FCK__ShowBlocks/g, '' ) ;
  39. else
  40. body.className += ' FCK__ShowBlocks' ;
  41. if ( FCKBrowserInfo.IsIE )
  42. {
  43. try
  44. {
  45. FCK.EditorDocument.selection.createRange().select() ;
  46. }
  47. catch ( e )
  48. {}
  49. }
  50. else
  51. {
  52. var focus = FCK.EditorWindow.getSelection().focusNode ;
  53. if ( focus )
  54. {
  55. if ( focus.nodeType != 1 )
  56. focus = focus.parentNode ;
  57. FCKDomTools.ScrollIntoView( focus, false ) ;
  58. }
  59. }
  60. FCK.Events.FireEvent( 'OnSelectionChange' ) ;
  61. }
  62. FCKShowBlockCommand.prototype.GetState = function()
  63. {
  64. if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
  65. return FCK_TRISTATE_DISABLED ;
  66. // On some cases FCK.EditorDocument.body is not yet available
  67. if ( !FCK.EditorDocument )
  68. return FCK_TRISTATE_OFF ;
  69. if ( /FCK__ShowBlocks(?:s|$)/.test( FCK.EditorDocument.body.className ) )
  70. return FCK_TRISTATE_ON ;
  71. return FCK_TRISTATE_OFF ;
  72. }
  73. FCKShowBlockCommand.prototype.SaveState = function()
  74. {
  75. this._SavedState = this.GetState() ;
  76. }
  77. FCKShowBlockCommand.prototype.RestoreState = function()
  78. {
  79. if ( this._SavedState != null && this.GetState() != this._SavedState )
  80. this.Execute() ;
  81. }