?? fck_link.js
字號:
?var dialog = window.parent ;
var oEditor = dialog.InnerDialogLoaded() ;
var FCK = oEditor.FCK ;
var FCKLang = oEditor.FCKLang ;
var FCKConfig = oEditor.FCKConfig ;
var FCKRegexLib = oEditor.FCKRegexLib ;
var FCKTools = oEditor.FCKTools ;
var oRegex = new Object() ;
oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ;
oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ;
oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ;
oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ;
var oParser = new Object() ;
var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ;
if ( oLink ) { FCK.Selection.SelectNode( oLink ) ; }
window.onload = function() {
oEditor.FCKLanguageManager.TranslatePage(document) ;
LoadSelection() ;
SetDefaultTarget() ;
dialog.SetOkButton( true ) ;
SelectField( 'txtUrl' ) ;
}
function LoadSelection() {
if ( !oLink ) return ;
var sType = 'url' ;
var sHRef = oLink.getAttribute( '_fcksavedurl' ) ;
if ( sHRef == null ) { sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; }
var sProtocol = oRegex.UriProtocol.exec( sHRef ) ;
if ( sProtocol ) {
sProtocol = sProtocol[0].toLowerCase() ;
GetE('cmbLinkProtocol').value = sProtocol ;
var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ;
sType = 'url' ;
GetE('txtUrl').value = sUrl ;
} else {
sType = 'url' ;
GetE('cmbLinkProtocol').value = '' ;
GetE('txtUrl').value = sHRef ;
}
}
function SetTarget( targetType ) {
switch ( targetType ) {
case "_blank" :
case "_self" :
case "_parent" :
case "_top" :
GetE('txtTargetFrame').value = targetType ;
break ;
case "" :
GetE('txtTargetFrame').value = '' ;
break ;
}
}
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 = '' ;
}
}
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' ;
}
}
function Ok() {
var sUri, sInnerHtml ;
oEditor.FCKUndo.SaveUndoStep() ;
sUri = GetE('txtUrl').value ;
if ( sUri.length == 0 ) {
alert( FCKLang.DlnLnkMsgNoUrl ) ;
return false ;
}
sUri = GetE('cmbLinkProtocol').value + sUri ;
var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true ) ;
var aHasSelection = ( aLinks.length > 0 ) ;
if ( !aHasSelection ) {
sInnerHtml = sUri;
var oLinkPathRegEx = new RegExp("//?([^?\"']+)([?].*)?$") ;
var asLinkPath = oLinkPathRegEx.exec( sUri ) ;
if (asLinkPath != null) { sInnerHtml = asLinkPath[1]; }
aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ;
}
for ( var i = 0 ; i < aLinks.length ; i++ ) {
oLink = aLinks[i] ;
if ( aHasSelection ) { sInnerHtml = oLink.innerHTML ; }
oLink.href = sUri ;
SetAttribute( oLink, '_fcksavedurl', sUri ) ;
var onclick;
onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ;
if ( onclick ) {
onclick = decodeURIComponent( onclick ) ;
}
oLink.innerHTML = sInnerHtml ;
SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ;
}
oEditor.FCKSelection.SelectNode( aLinks[0] );
return true ;
}
function SetUrl( url ) {
GetE('txtUrl').value = url ;
//document.getElementById('txtUrl').value = url ;
OnUrlChange() ;
dialog.SetSelectedTab( 'Info' ) ;
}
function SetDefaultTarget() {
var target = FCKConfig.DefaultLinkTarget || '' ;
if ( oLink || target.length == 0 )
return ;
switch ( target ) {
case '_blank' :
case '_self' :
case '_parent' :
case '_top' :
GetE('cmbTarget').value = target ;
break ;
default :
GetE('cmbTarget').value = 'frame' ;
break ;
}
GetE('txtTargetFrame').value = target ;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -