fck_image.js
资源名称:Myblog.rar [点击查看]
上传用户:wlfwy2004
上传日期:2016-12-12
资源大小:33978k
文件大小:11k
源码类别:
Jsp/Servlet
开发平台:
Java
- /*
- * FCKeditor - The text editor for internet
- * Copyright (C) 2003-2005 Frederico Caldeira Knabben
- *
- * Licensed under the terms of the GNU Lesser General Public License:
- * http://www.opensource.org/licenses/lgpl-license.php
- *
- * For further information visit:
- * http://www.fckeditor.net/
- *
- * File Name: fck_image.js
- * Scripts related to the Image dialog window (see fck_image.html).
- *
- * File Authors:
- * Frederico Caldeira Knabben (fredck@fckeditor.net)
- */
- var oEditor = window.parent.InnerDialogLoaded() ;
- var FCK = oEditor.FCK ;
- var FCKLang = oEditor.FCKLang ;
- var FCKConfig = oEditor.FCKConfig ;
- var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ;
- //#### Dialog Tabs
- // Set the dialog tabs.
- window.parent.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ;
- if ( !bImageButton && !FCKConfig.ImageDlgHideLink )
- window.parent.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ;
- if ( FCKConfig.ImageUpload )
- window.parent.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
- if ( !FCKConfig.ImageDlgHideAdvanced )
- window.parent.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ;
- // Function called when a dialog tag is selected.
- function OnDialogTabChange( tabCode )
- {
- ShowE('divInfo' , ( tabCode == 'Info' ) ) ;
- ShowE('divLink' , ( tabCode == 'Link' ) ) ;
- ShowE('divUpload' , ( tabCode == 'Upload' ) ) ;
- ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ;
- }
- // Get the selected image (if available).
- var oImage = FCK.Selection.GetSelectedElement() ;
- if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) )
- oImage = null ;
- // Get the active link.
- var oLink = FCK.Selection.MoveToAncestorNode( 'A' ) ;
- var oImageOriginal ;
- function UpdateOriginal( resetSize )
- {
- oImageOriginal = document.createElement( 'IMG' ) ; // new Image() ;
- if ( resetSize )
- {
- oImageOriginal.onload = function()
- {
- this.onload = null ;
- ResetSizes() ;
- }
- }
- oImageOriginal.src = GetE('imgPreview').src ;
- }
- window.onload = function()
- {
- // Translate the dialog box texts.
- oEditor.FCKLanguageManager.TranslatePage(document) ;
- GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ;
- GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ;
- // Load the selected element information (if any).
- LoadSelection() ;
- // Show/Hide the "Browse Server" button.
- GetE('tdBrowse').style.display = FCKConfig.ImageBrowser ? '' : 'none' ;
- GetE('divLnkBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ;
- UpdateOriginal() ;
- // Set the actual uploader URL.
- if ( FCKConfig.ImageUpload )
- GetE('frmUpload').action = FCKConfig.ImageUploadURL ;
- window.parent.SetAutoSize( true ) ;
- // Activate the "OK" button.
- window.parent.SetOkButton( true ) ;
- }
- function LoadSelection()
- {
- if ( ! oImage ) return ;
- var sUrl = GetAttribute( oImage, 'src', '' ) ;
- // TODO: Wait stable version and remove the following commented lines.
- // if ( sUrl.startsWith( FCK.BaseUrl ) )
- // sUrl = sUrl.remove( 0, FCK.BaseUrl.length ) ;
- GetE('txtUrl').value = sUrl ;
- GetE('txtAlt').value = GetAttribute( oImage, 'alt', '' ) ;
- GetE('txtVSpace').value = GetAttribute( oImage, 'vspace', '' ) ;
- GetE('txtHSpace').value = GetAttribute( oImage, 'hspace', '' ) ;
- GetE('txtBorder').value = GetAttribute( oImage, 'border', '' ) ;
- GetE('cmbAlign').value = GetAttribute( oImage, 'align', '' ) ;
- if ( oImage.style.pixelWidth > 0 )
- GetE('txtWidth').value = oImage.style.pixelWidth ;
- else
- GetE('txtWidth').value = GetAttribute( oImage, "width", '' ) ;
- if ( oImage.style.pixelHeight > 0 )
- GetE('txtHeight').value = oImage.style.pixelHeight ;
- else
- GetE('txtHeight').value = GetAttribute( oImage, "height", '' ) ;
- // Get Advances Attributes
- GetE('txtAttId').value = oImage.id ;
- GetE('cmbAttLangDir').value = oImage.dir ;
- GetE('txtAttLangCode').value = oImage.lang ;
- GetE('txtAttTitle').value = oImage.title ;
- GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ;
- GetE('txtLongDesc').value = oImage.longDesc ;
- if ( oEditor.FCKBrowserInfo.IsIE )
- GetE('txtAttStyle').value = oImage.style.cssText ;
- else
- GetE('txtAttStyle').value = oImage.getAttribute('style',2) ;
- if ( oLink )
- {
- GetE('txtLnkUrl').value = oLink.getAttribute('href',2) ;
- GetE('cmbLnkTarget').value = oLink.target ;
- }
- UpdatePreview() ;
- }
- //#### The OK button was hit.
- function Ok()
- {
- if ( GetE('txtUrl').value.length == 0 )
- {
- window.parent.SetSelectedTab( 'Info' ) ;
- GetE('txtUrl').focus() ;
- alert( FCKLang.DlgImgAlertUrl ) ;
- return false ;
- }
- var bHasImage = ( oImage != null ) ;
- if ( bHasImage && bImageButton && oImage.tagName == 'IMG' )
- {
- if ( confirm( 'Do you want to transform the selected image on a image button?' ) )
- oImage = null ;
- }
- else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' )
- {
- if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) )
- oImage = null ;
- }
- if ( !bHasImage )
- {
- if ( bImageButton )
- {
- oImage = FCK.EditorDocument.createElement( 'INPUT' ) ;
- oImage.type = 'image' ;
- oImage = FCK.InsertElementAndGetIt( oImage ) ;
- }
- else
- oImage = FCK.CreateElement( 'IMG' ) ;
- }
- else
- oEditor.FCKUndo.SaveUndoStep() ;
- UpdateImage( oImage ) ;
- var sLnkUrl = GetE('txtLnkUrl').value.trim() ;
- if ( sLnkUrl.length == 0 )
- {
- if ( oLink )
- FCK.ExecuteNamedCommand( 'Unlink' ) ;
- }
- else
- {
- if ( oLink ) // Modifying an existent link.
- oLink.href = sLnkUrl ;
- else // Creating a new link.
- {
- if ( !bHasImage )
- oEditor.FCKSelection.SelectNode( oImage ) ;
- oLink = oEditor.FCK.CreateLink( sLnkUrl ) ;
- if ( !bHasImage )
- {
- oEditor.FCKSelection.SelectNode( oLink ) ;
- oEditor.FCKSelection.Collapse( false ) ;
- }
- }
- SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ;
- }
- return true ;
- }
- function UpdateImage( e, skipId )
- {
- e.src = GetE('txtUrl').value ;
- SetAttribute( e, "alt" , GetE('txtAlt').value ) ;
- SetAttribute( e, "width" , GetE('txtWidth').value ) ;
- SetAttribute( e, "height", GetE('txtHeight').value ) ;
- SetAttribute( e, "vspace", GetE('txtVSpace').value ) ;
- SetAttribute( e, "hspace", GetE('txtHSpace').value ) ;
- SetAttribute( e, "border", GetE('txtBorder').value ) ;
- SetAttribute( e, "align" , GetE('cmbAlign').value ) ;
- // Advances Attributes
- if ( ! skipId )
- SetAttribute( e, 'id', GetE('txtAttId').value ) ;
- SetAttribute( e, 'dir' , GetE('cmbAttLangDir').value ) ;
- SetAttribute( e, 'lang' , GetE('txtAttLangCode').value ) ;
- SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ;
- SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ;
- SetAttribute( e, 'longDesc' , GetE('txtLongDesc').value ) ;
- if ( oEditor.FCKBrowserInfo.IsIE )
- e.style.cssText = GetE('txtAttStyle').value ;
- else
- SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
- }
- function UpdatePreview()
- {
- if ( GetE('txtUrl').value.length == 0 )
- GetE('lnkPreview').style.display = 'none' ;
- else
- {
- UpdateImage( GetE('imgPreview'), true ) ;
- if ( GetE('txtLnkUrl').value.trim().length > 0 )
- GetE('lnkPreview').href = 'javascript:void(null);' ;
- else
- SetAttribute( GetE('lnkPreview'), 'href', '' ) ;
- GetE('lnkPreview').style.display = '' ;
- }
- }
- var bLockRatio = true ;
- function SwitchLock( lockButton )
- {
- bLockRatio = !bLockRatio ;
- lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ;
- lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ;
- if ( bLockRatio )
- {
- if ( GetE('txtWidth').value.length > 0 )
- OnSizeChanged( 'Width', GetE('txtWidth').value ) ;
- else
- OnSizeChanged( 'Height', GetE('txtHeight').value ) ;
- }
- }
- // Fired when the width or height input texts change
- function OnSizeChanged( dimension, value )
- {
- // Verifies if the aspect ration has to be mantained
- if ( oImageOriginal && bLockRatio )
- {
- if ( value.length == 0 || isNaN( value ) )
- {
- GetE('txtHeight').value = GetE('txtWidth').value = '' ;
- return ;
- }
- if ( dimension == 'Width' )
- GetE('txtHeight').value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value / oImageOriginal.width ) ) ;
- else
- GetE('txtWidth').value = value == 0 ? 0 : Math.round( oImageOriginal.width * ( value / oImageOriginal.height ) ) ;
- }
- UpdatePreview() ;
- }
- // Fired when the Reset Size button is clicked
- function ResetSizes()
- {
- if ( ! oImageOriginal ) return ;
- GetE('txtWidth').value = oImageOriginal.width ;
- GetE('txtHeight').value = oImageOriginal.height ;
- UpdatePreview() ;
- }
- function BrowseServer()
- {
- OpenServerBrowser(
- 'Image',
- FCKConfig.ImageBrowserURL,
- FCKConfig.ImageBrowserWindowWidth,
- FCKConfig.ImageBrowserWindowHeight ) ;
- }
- function LnkBrowseServer()
- {
- OpenServerBrowser(
- 'Link',
- FCKConfig.LinkBrowserURL,
- FCKConfig.LinkBrowserWindowWidth,
- FCKConfig.LinkBrowserWindowHeight ) ;
- }
- function OpenServerBrowser( type, url, width, height )
- {
- sActualBrowser = type ;
- var iLeft = (screen.width - width) / 2 ;
- var iTop = (screen.height - height) / 2 ;
- var sOptions = "toolbar=no,status=no,resizable=yes,dependent=yes" ;
- sOptions += ",width=" + width ;
- sOptions += ",height=" + height ;
- sOptions += ",left=" + iLeft ;
- sOptions += ",top=" + iTop ;
- var oWindow = window.open( url, "FCKBrowseWindow", sOptions ) ;
- }
- var sActualBrowser ;
- function SetUrl( url, width, height, alt )
- {
- if ( sActualBrowser == 'Link' )
- {
- GetE('txtLnkUrl').value = url ;
- UpdatePreview() ;
- }
- else
- {
- GetE('txtUrl').value = url ;
- GetE('txtWidth').value = width ? width : '' ;
- GetE('txtHeight').value = height ? height : '' ;
- if ( alt )
- GetE('txtAlt').value = alt;
- UpdatePreview() ;
- UpdateOriginal( true ) ;
- }
- window.parent.SetSelectedTab( 'Info' ) ;
- }
- function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
- {
- switch ( errorNumber )
- {
- case 0 : // No errors
- alert( 'Your file has been successfully uploaded' ) ;
- break ;
- case 1 : // Custom error
- alert( customMsg ) ;
- return ;
- case 101 : // Custom warning
- alert( customMsg ) ;
- break ;
- case 201 :
- alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
- break ;
- case 202 :
- alert( 'Invalid file type' ) ;
- return ;
- case 203 :
- alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
- return ;
- default :
- alert( 'Error on file upload. Error number: ' + errorNumber ) ;
- return ;
- }
- sActualBrowser = ''
- SetUrl( fileUrl ) ;
- GetE('frmUpload').reset() ;
- }
- var oUploadAllowedExtRegex = new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ;
- var oUploadDeniedExtRegex = new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ;
- function CheckUpload()
- {
- var sFile = GetE('txtUploadFile').value ;
- if ( sFile.length == 0 )
- {
- alert( 'Please select a file to upload' ) ;
- return false ;
- }
- if ( ( FCKConfig.ImageUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
- ( FCKConfig.ImageUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
- {
- OnUploadCompleted( 202 ) ;
- return false ;
- }
- return true ;
- }