⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fck_link.js

📁 本文是一个中文版BLOG程序
💻 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 + -