fck_link.js

来自「国外很不错的一个开源OA系统Group-Office」· JavaScript 代码 · 共 665 行 · 第 1/2 页

JS
665
字号
	if ( !FCKConfig.LinkDlgHideAdvanced )		window.parent.SetTabVisibility( 'Advanced'	, (linkType != 'anchor' || bHasAnchors) ) ;	if ( linkType == 'email' )		window.parent.SetAutoSize( true ) ;}//#### Target type selection.function SetTarget( targetType ){	GetE('tdTargetFrame').style.display	= ( targetType == 'popup' ? 'none' : '' ) ;	GetE('tdPopupName').style.display	=		GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ;	switch ( targetType )	{		case "_blank" :		case "_self" :		case "_parent" :		case "_top" :			GetE('txtTargetFrame').value = targetType ;			break ;		case "" :			GetE('txtTargetFrame').value = '' ;			break ;	}	if ( targetType == 'popup' )		window.parent.SetAutoSize( true ) ;}//#### Called while the user types the URL.function OnUrlChange(){	var sUrl = GetE('txtUrl').value ;	var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ;	if ( sProtocol )	{		sUrl = sUrl.substr( sProtocol[0].length ) ;		GetE('txtUrl').value = sUrl ;		GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ;	}	else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) )	{		GetE('cmbLinkProtocol').value = '' ;	}}//#### Called while the user types the target name.function OnTargetNameChange(){	var sFrame = GetE('txtTargetFrame').value ;	if ( sFrame.length == 0 )		GetE('cmbTarget').value = '' ;	else if ( oRegex.ReserveTarget.test( sFrame ) )		GetE('cmbTarget').value = sFrame.toLowerCase() ;	else		GetE('cmbTarget').value = 'frame' ;}// Accesible popupsfunction BuildOnClickPopup(){	var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ;	var sFeatures = '' ;	var aChkFeatures = document.getElementsByName( 'chkFeature' ) ;	for ( var i = 0 ; i < aChkFeatures.length ; i++ )	{		if ( i > 0 ) sFeatures += ',' ;		sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' ) ;	}	if ( GetE('txtPopupWidth').value.length > 0 )	sFeatures += ',width=' + GetE('txtPopupWidth').value ;	if ( GetE('txtPopupHeight').value.length > 0 )	sFeatures += ',height=' + GetE('txtPopupHeight').value ;	if ( GetE('txtPopupLeft').value.length > 0 )	sFeatures += ',left=' + GetE('txtPopupLeft').value ;	if ( GetE('txtPopupTop').value.length > 0 )		sFeatures += ',top=' + GetE('txtPopupTop').value ;	if ( sFeatures != '' )		sFeatures = sFeatures + ",status" ;	return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" ) ;}//#### Fills all Popup related fields.function FillPopupFields( windowName, features ){	if ( windowName )		GetE('txtPopupName').value = windowName ;	var oFeatures = new Object() ;	var oFeaturesMatch ;	while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null )	{		var sValue = oFeaturesMatch[2] ;		if ( sValue == ( 'yes' || '1' ) )			oFeatures[ oFeaturesMatch[1] ] = true ;		else if ( ! isNaN( sValue ) && sValue != 0 )			oFeatures[ oFeaturesMatch[1] ] = sValue ;	}	// Update all features check boxes.	var aChkFeatures = document.getElementsByName('chkFeature') ;	for ( var i = 0 ; i < aChkFeatures.length ; i++ )	{		if ( oFeatures[ aChkFeatures[i].value ] )			aChkFeatures[i].checked = true ;	}	// Update position and size text boxes.	if ( oFeatures['width'] )	GetE('txtPopupWidth').value		= oFeatures['width'] ;	if ( oFeatures['height'] )	GetE('txtPopupHeight').value	= oFeatures['height'] ;	if ( oFeatures['left'] )	GetE('txtPopupLeft').value		= oFeatures['left'] ;	if ( oFeatures['top'] )		GetE('txtPopupTop').value		= oFeatures['top'] ;}//#### The OK button was hit.function Ok(){	var sUri, sInnerHtml ;	switch ( GetE('cmbLinkType').value )	{		case 'url' :			sUri = GetE('txtUrl').value ;			if ( sUri.length == 0 )			{				alert( FCKLang.DlnLnkMsgNoUrl ) ;				return false ;			}			sUri = GetE('cmbLinkProtocol').value + sUri ;			break ;		case 'email' :			sUri = GetE('txtEMailAddress').value ;			if ( sUri.length == 0 )			{				alert( FCKLang.DlnLnkMsgNoEMail ) ;				return false ;			}			sUri = oParser.CreateEMailUri(				sUri,				GetE('txtEMailSubject').value,				GetE('txtEMailBody').value ) ;			break ;		case 'anchor' :			var sAnchor = GetE('cmbAnchorName').value ;			if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value ;			if ( sAnchor.length == 0 )			{				alert( FCKLang.DlnLnkMsgNoAnchor ) ;				return false ;			}			sUri = '#' + sAnchor ;			break ;	}	// No link selected, so try to create one.	if ( !oLink )		oLink = oEditor.FCK.CreateLink( sUri ) ;	if ( oLink )		sInnerHtml = oLink.innerHTML ;		// Save the innerHTML (IE changes it if it is like an URL).	else	{		// If no selection, use the uri as the link text (by dom, 2006-05-26)		sInnerHtml = sUri;		// Built a better text for empty links.		switch ( GetE('cmbLinkType').value )		{			// anchor: use old behavior --> return true			case 'anchor':				sInnerHtml = sInnerHtml.replace( /^#/, '' ) ;				break ;			// url: try to get path			case 'url':				var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;				var asLinkPath = oLinkPathRegEx.exec( sUri ) ;				if (asLinkPath != null)					sInnerHtml = asLinkPath[1];  // use matched path				break ;			// mailto: try to get email address			case 'email':				sInnerHtml = GetE('txtEMailAddress').value ;				break ;		}		// Create a new (empty) anchor.		oLink = oEditor.FCK.CreateElement( 'a' ) ;	}	oEditor.FCKUndo.SaveUndoStep() ;	oLink.href = sUri ;	SetAttribute( oLink, '_fcksavedurl', sUri ) ;	// Accesible popups	if( GetE('cmbTarget').value == 'popup' )	{		SetAttribute( oLink, 'onclick_fckprotectedatt', " onclick=\"" + BuildOnClickPopup() + "\"") ;	}	else	{		// Check if the previous onclick was for a popup:		// In that case remove the onclick handler.		var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;		if( oRegex.OnClickPopup.test( onclick ) )			SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ;	}	oLink.innerHTML = sInnerHtml ;		// Set (or restore) the innerHTML	// Target	if( GetE('cmbTarget').value != 'popup' )		SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;	else		SetAttribute( oLink, 'target', null ) ;	// Advances Attributes	SetAttribute( oLink, 'id'		, GetE('txtAttId').value ) ;	SetAttribute( oLink, 'name'		, GetE('txtAttName').value ) ;	SetAttribute( oLink, 'dir'		, GetE('cmbAttLangDir').value ) ;	SetAttribute( oLink, 'lang'		, GetE('txtAttLangCode').value ) ;	SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ;	SetAttribute( oLink, 'tabindex'	, ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ;	SetAttribute( oLink, 'title'	, GetE('txtAttTitle').value ) ;	SetAttribute( oLink, 'type'		, GetE('txtAttContentType').value ) ;	SetAttribute( oLink, 'charset'	, GetE('txtAttCharSet').value ) ;	if ( oEditor.FCKBrowserInfo.IsIE )	{		var sClass = GetE('txtAttClasses').value ;		// If it's also an anchor add an internal class		if ( GetE('txtAttName').value.length != 0 )			sClass += ' FCK__AnchorC' ;		SetAttribute( oLink, 'className', sClass ) ;		oLink.style.cssText = GetE('txtAttStyle').value ;	}	else	{		SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ;		SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ;	}	// Select the link.	oEditor.FCKSelection.SelectNode(oLink);	return true ;}function BrowseServer(){	OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ;}function SetUrl( url ){	document.getElementById('txtUrl').value = url ;	OnUrlChange() ;	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 ;	}	SetUrl( fileUrl ) ;	GetE('frmUpload').reset() ;}var oUploadAllowedExtRegex	= new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' ) ;var oUploadDeniedExtRegex	= new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' ) ;function CheckUpload(){	var sFile = GetE('txtUploadFile').value ;	if ( sFile.length == 0 )	{		alert( 'Please select a file to upload' ) ;		return false ;	}	if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||		( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )	{		OnUploadCompleted( 202 ) ;		return false ;	}	return true ;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?