fck_flash.js
上传用户:saigedz
上传日期:2019-10-14
资源大小:997k
文件大小:8k
源码类别:

中间件编程

开发平台:

HTML/CSS

  1. /*
  2.  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
  3.  * Copyright (C) 2003-2008 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.  * Scripts related to the Flash dialog window (see fck_flash.html).
  22.  */
  23. var dialog = window.parent ;
  24. var oEditor = dialog.InnerDialogLoaded() ;
  25. var FCK = oEditor.FCK ;
  26. var FCKLang = oEditor.FCKLang ;
  27. var FCKConfig = oEditor.FCKConfig ;
  28. var FCKTools = oEditor.FCKTools ;
  29. //#### Dialog Tabs
  30. // Set the dialog tabs.
  31. dialog.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
  32. if ( FCKConfig.FlashUpload )
  33. dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
  34. if ( !FCKConfig.FlashDlgHideAdvanced )
  35. dialog.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
  36. // Function called when a dialog tag is selected.
  37. function OnDialogTabChange( tabCode )
  38. {
  39. ShowE('divInfo' , ( tabCode == 'Info' ) ) ;
  40. ShowE('divUpload' , ( tabCode == 'Upload' ) ) ;
  41. ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ;
  42. }
  43. // Get the selected flash embed (if available).
  44. var oFakeImage = dialog.Selection.GetSelectedElement() ;
  45. var oEmbed ;
  46. if ( oFakeImage )
  47. {
  48. if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
  49. oEmbed = FCK.GetRealElement( oFakeImage ) ;
  50. else
  51. oFakeImage = null ;
  52. }
  53. window.onload = function()
  54. {
  55. // Translate the dialog box texts.
  56. oEditor.FCKLanguageManager.TranslatePage(document) ;
  57. // Load the selected element information (if any).
  58. LoadSelection() ;
  59. // Show/Hide the "Browse Server" button.
  60. GetE('tdBrowse').style.display = FCKConfig.FlashBrowser ? '' : 'none' ;
  61. // Set the actual uploader URL.
  62. if ( FCKConfig.FlashUpload )
  63. GetE('frmUpload').action = FCKConfig.FlashUploadURL ;
  64. dialog.SetAutoSize( true ) ;
  65. // Activate the "OK" button.
  66. dialog.SetOkButton( true ) ;
  67. SelectField( 'txtUrl' ) ;
  68. }
  69. function LoadSelection()
  70. {
  71. if ( ! oEmbed ) return ;
  72. GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;
  73. GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;
  74. GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
  75. // Get Advances Attributes
  76. GetE('txtAttId').value = oEmbed.id ;
  77. GetE('chkAutoPlay').checked = GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;
  78. GetE('chkLoop').checked = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
  79. GetE('chkMenu').checked = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
  80. GetE('cmbScale').value = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
  81. GetE('txtAttTitle').value = oEmbed.title ;
  82. if ( oEditor.FCKBrowserInfo.IsIE )
  83. {
  84. GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
  85. GetE('txtAttStyle').value = oEmbed.style.cssText ;
  86. }
  87. else
  88. {
  89. GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
  90. GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
  91. }
  92. UpdatePreview() ;
  93. }
  94. //#### The OK button was hit.
  95. function Ok()
  96. {
  97. if ( GetE('txtUrl').value.length == 0 )
  98. {
  99. dialog.SetSelectedTab( 'Info' ) ;
  100. GetE('txtUrl').focus() ;
  101. alert( oEditor.FCKLang.DlgAlertUrl ) ;
  102. return false ;
  103. }
  104. oEditor.FCKUndo.SaveUndoStep() ;
  105. if ( !oEmbed )
  106. {
  107. oEmbed = FCK.EditorDocument.createElement( 'EMBED' ) ;
  108. oFakeImage  = null ;
  109. }
  110. UpdateEmbed( oEmbed ) ;
  111. if ( !oFakeImage )
  112. {
  113. oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
  114. oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
  115. oFakeImage = FCK.InsertElement( oFakeImage ) ;
  116. }
  117. oEditor.FCKEmbedAndObjectProcessor.RefreshView( oFakeImage, oEmbed ) ;
  118. return true ;
  119. }
  120. function UpdateEmbed( e )
  121. {
  122. SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ;
  123. SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ;
  124. SetAttribute( e, 'src', GetE('txtUrl').value ) ;
  125. SetAttribute( e, "width" , GetE('txtWidth').value ) ;
  126. SetAttribute( e, "height", GetE('txtHeight').value ) ;
  127. // Advances Attributes
  128. SetAttribute( e, 'id' , GetE('txtAttId').value ) ;
  129. SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
  130. SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
  131. SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
  132. SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
  133. SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ;
  134. if ( oEditor.FCKBrowserInfo.IsIE )
  135. {
  136. SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
  137. e.style.cssText = GetE('txtAttStyle').value ;
  138. }
  139. else
  140. {
  141. SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
  142. SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
  143. }
  144. }
  145. var ePreview ;
  146. function SetPreviewElement( previewEl )
  147. {
  148. ePreview = previewEl ;
  149. if ( GetE('txtUrl').value.length > 0 )
  150. UpdatePreview() ;
  151. }
  152. function UpdatePreview()
  153. {
  154. if ( !ePreview )
  155. return ;
  156. while ( ePreview.firstChild )
  157. ePreview.removeChild( ePreview.firstChild ) ;
  158. if ( GetE('txtUrl').value.length == 0 )
  159. ePreview.innerHTML = ' ' ;
  160. else
  161. {
  162. var oDoc = ePreview.ownerDocument || ePreview.document ;
  163. var e = oDoc.createElement( 'EMBED' ) ;
  164. SetAttribute( e, 'src', GetE('txtUrl').value ) ;
  165. SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;
  166. SetAttribute( e, 'width', '100%' ) ;
  167. SetAttribute( e, 'height', '100%' ) ;
  168. ePreview.appendChild( e ) ;
  169. }
  170. }
  171. // <embed id="ePreview" src="fck_flash/claims.swf" width="100%" height="100%" style="visibility:hidden" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
  172. function BrowseServer()
  173. {
  174. OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;
  175. }
  176. function SetUrl( url, width, height )
  177. {
  178. GetE('txtUrl').value = url ;
  179. if ( width )
  180. GetE('txtWidth').value = width ;
  181. if ( height )
  182. GetE('txtHeight').value = height ;
  183. UpdatePreview() ;
  184. dialog.SetSelectedTab( 'Info' ) ;
  185. }
  186. function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
  187. {
  188. // Remove animation
  189. window.parent.Throbber.Hide() ;
  190. GetE( 'divUpload' ).style.display  = '' ;
  191. switch ( errorNumber )
  192. {
  193. case 0 : // No errors
  194. alert( 'Your file has been successfully uploaded' ) ;
  195. break ;
  196. case 1 : // Custom error
  197. alert( customMsg ) ;
  198. return ;
  199. case 101 : // Custom warning
  200. alert( customMsg ) ;
  201. break ;
  202. case 201 :
  203. alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
  204. break ;
  205. case 202 :
  206. alert( 'Invalid file type' ) ;
  207. return ;
  208. case 203 :
  209. alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
  210. return ;
  211. case 500 :
  212. alert( 'The connector is disabled' ) ;
  213. break ;
  214. default :
  215. alert( 'Error on file upload. Error number: ' + errorNumber ) ;
  216. return ;
  217. }
  218. SetUrl( fileUrl ) ;
  219. GetE('frmUpload').reset() ;
  220. }
  221. var oUploadAllowedExtRegex = new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ;
  222. var oUploadDeniedExtRegex = new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ;
  223. function CheckUpload()
  224. {
  225. var sFile = GetE('txtUploadFile').value ;
  226. if ( sFile.length == 0 )
  227. {
  228. alert( 'Please select a file to upload' ) ;
  229. return false ;
  230. }
  231. if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
  232. ( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
  233. {
  234. OnUploadCompleted( 202 ) ;
  235. return false ;
  236. }
  237. // Show animation
  238. window.parent.Throbber.Show( 100 ) ;
  239. GetE( 'divUpload' ).style.display  = 'none' ;
  240. return true ;
  241. }