亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fck_gecko.js

?? 尚學堂科技JAVA系列教程之JAVA系列BBS_2007的講解源代碼
?? JS
字號:
?/*
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
 *
 * == BEGIN LICENSE ==
 *
 * Licensed under the terms of any of the following licenses at your
 * choice:
 *
 *  - GNU General Public License Version 2 or later (the "GPL")
 *    http://www.gnu.org/licenses/gpl.html
 *
 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
 *    http://www.gnu.org/licenses/lgpl.html
 *
 *  - Mozilla Public License Version 1.1 or later (the "MPL")
 *    http://www.mozilla.org/MPL/MPL-1.1.html
 *
 * == END LICENSE ==
 *
 * Creation and initialization of the "FCK" object. This is the main
 * object that represents an editor instance.
 * (Gecko specific implementations)
 */

FCK.Description = "FCKeditor for Gecko Browsers" ;

FCK.InitializeBehaviors = function()
{
	// When calling "SetHTML", the editing area IFRAME gets a fixed height. So we must recaulculate it.
	if ( FCKBrowserInfo.IsGecko )		// Not for Safari/Opera.
		Window_OnResize() ;

	FCKFocusManager.AddWindow( this.EditorWindow ) ;

	this.ExecOnSelectionChange = function()
	{
		FCK.Events.FireEvent( "OnSelectionChange" ) ;
	}

	this.ExecOnSelectionChangeTimer = function()
	{
		if ( FCK.LastOnChangeTimer )
			window.clearTimeout( FCK.LastOnChangeTimer ) ;

		FCK.LastOnChangeTimer = window.setTimeout( FCK.ExecOnSelectionChange, 100 ) ;
	}

	this.EditorDocument.addEventListener( 'mouseup', this.ExecOnSelectionChange, false ) ;

	// On Gecko, firing the "OnSelectionChange" event on every key press started to be too much
	// slow. So, a timer has been implemented to solve performance issues when tipying to quickly.
	this.EditorDocument.addEventListener( 'keyup', this.ExecOnSelectionChangeTimer, false ) ;

	this._DblClickListener = function( e )
	{
		FCK.OnDoubleClick( e.target ) ;
		e.stopPropagation() ;
	}
	this.EditorDocument.addEventListener( 'dblclick', this._DblClickListener, true ) ;

	// Reset the context menu.
	FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow( FCK.EditorWindow ) ;
	FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument ) ;
}

FCK.MakeEditable = function()
{
	this.EditingArea.MakeEditable() ;
}

// Disable the context menu in the editor (outside the editing area).
function Document_OnContextMenu( e )
{
	if ( !e.target._FCKShowContextMenu )
		e.preventDefault() ;
}
document.oncontextmenu = Document_OnContextMenu ;

// GetNamedCommandState overload for Gecko.
FCK._BaseGetNamedCommandState = FCK.GetNamedCommandState ;
FCK.GetNamedCommandState = function( commandName )
{
	switch ( commandName )
	{
		case 'Unlink' :
			return FCKSelection.HasAncestorNode('A') ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ;
		default :
			return FCK._BaseGetNamedCommandState( commandName ) ;
	}
}

// Named commands to be handled by this browsers specific implementation.
FCK.RedirectNamedCommands =
{
	Print	: true,
	Paste	: true,
	Cut		: true,
	Copy	: true
} ;

// ExecuteNamedCommand overload for Gecko.
FCK.ExecuteRedirectedNamedCommand = function( commandName, commandParameter )
{
	switch ( commandName )
	{
		case 'Print' :
			FCK.EditorWindow.print() ;
			break ;
		case 'Paste' :
			try			{ if ( FCK.Paste() ) FCK.ExecuteNamedCommand( 'Paste', null, true ) ; }
			catch (e)	{ FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.Paste, 'dialog/fck_paste.html', 400, 330, 'Security' ) ; }
			break ;
		case 'Cut' :
			try			{ FCK.ExecuteNamedCommand( 'Cut', null, true ) ; }
			catch (e)	{ alert(FCKLang.PasteErrorCut) ; }
			break ;
		case 'Copy' :
			try			{ FCK.ExecuteNamedCommand( 'Copy', null, true ) ; }
			catch (e)	{ alert(FCKLang.PasteErrorCopy) ; }
			break ;
		default :
			FCK.ExecuteNamedCommand( commandName, commandParameter ) ;
	}
}

FCK.Paste = function()
{
	if ( FCKConfig.ForcePasteAsPlainText )
	{
		FCK.PasteAsPlainText() ;
		return false ;
	}

	/* For now, the AutoDetectPasteFromWord feature is IE only. */

	return true ;
}

//**
// FCK.InsertHtml: Inserts HTML at the current cursor location. Deletes the
// selected content if any.
FCK.InsertHtml = function( html )
{
	html = FCKConfig.ProtectedSource.Protect( html ) ;
	html = FCK.ProtectEvents( html ) ;
	html = FCK.ProtectUrls( html ) ;
	html = FCK.ProtectTags( html ) ;

	// Firefox can't handle correctly the editing of the STRONG and EM tags.
	// We must replace them with B and I.
		html = html.replace( FCKRegexLib.StrongOpener, '<b$1' ) ;
		html = html.replace( FCKRegexLib.StrongCloser, '<\/b>' ) ;
		html = html.replace( FCKRegexLib.EmOpener, '<i$1' ) ;
		html = html.replace( FCKRegexLib.EmCloser, '<\/i>' ) ;

	// Delete the actual selection.
	var oSel = FCKSelection.Delete() ;

	// Get the first available range.
	var oRange = oSel.getRangeAt(0) ;

	// Create a fragment with the input HTML.
	var oFragment = oRange.createContextualFragment( html ) ;

	// Get the last available node.
	var oLastNode = oFragment.lastChild ;

	// Insert the fragment in the range.
	oRange.insertNode(oFragment) ;

	// Set the cursor after the inserted fragment.
	FCKSelection.SelectNode( oLastNode ) ;
	FCKSelection.Collapse( false ) ;

	this.Focus() ;
}

FCK.InsertElement = function( element )
{
	// Deletes the actual selection.
	var oSel = FCKSelection.Delete() ;

	// Gets the first available range.
	var oRange = oSel.getRangeAt(0) ;

	// Inserts the element in the range.
	oRange.insertNode( element ) ;

	// Set the cursor after the inserted fragment.
	FCKSelection.SelectNode( element ) ;
	FCKSelection.Collapse( false ) ;

	this.Focus() ;
}

FCK.PasteAsPlainText = function()
{
	// TODO: Implement the "Paste as Plain Text" code.

	// If the function is called inmediately Firefox 2 does automatically paste the contents as soon as the new dialog is created
	// so we run it in a Timeout and the paste event can be cancelled
	FCKTools.RunFunction( FCKDialog.OpenDialog, FCKDialog, ['FCKDialog_Paste', FCKLang.PasteAsText, 'dialog/fck_paste.html', 400, 330, 'PlainText'] ) ;

/*
	var sText = FCKTools.HTMLEncode( clipboardData.getData("Text") ) ;
	sText = sText.replace( /\n/g, '<BR>' ) ;
	this.InsertHtml( sText ) ;
*/
}
/*
FCK.PasteFromWord = function()
{
	// TODO: Implement the "Paste as Plain Text" code.

	FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;

//	FCK.CleanAndPaste( FCK.GetClipboardHTML() ) ;
}
*/
FCK.GetClipboardHTML = function()
{
	return '' ;
}

FCK.CreateLink = function( url )
{
	// Creates the array that will be returned. It contains one or more created links (see #220).
	var aCreatedLinks = new Array() ;

	FCK.ExecuteNamedCommand( 'Unlink' ) ;

	if ( url.length > 0 )
	{
		// Generate a temporary name for the link.
		var sTempUrl = 'javascript:void(0);/*' + ( new Date().getTime() ) + '*/' ;

		// Use the internal "CreateLink" command to create the link.
		FCK.ExecuteNamedCommand( 'CreateLink', sTempUrl ) ;

		// Retrieve the just created links using XPath.
		var oLinksInteractor = this.EditorDocument.evaluate("//a[@href='" + sTempUrl + "']", this.EditorDocument.body, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null) ;

		// Add all links to the returning array.
		for ( var i = 0 ; i < oLinksInteractor.snapshotLength ; i++ )
		{
			var oLink = oLinksInteractor.snapshotItem( i ) ;
			oLink.href = url ;
			aCreatedLinks.push( oLink ) ;
		}
	}

	return aCreatedLinks ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美经典视频| 成人av在线一区二区| 国产精品污www在线观看| 91在线播放网址| 国产精品99久久久久久似苏梦涵| 亚洲精品国产成人久久av盗摄| 日韩一区二区三区电影在线观看 | 久久久蜜桃精品| 欧美久久久久久久久久| 亚洲国产va精品久久久不卡综合| 国产成人免费视频一区| 伊人婷婷欧美激情| 亚洲丝袜另类动漫二区| 久久久久国产免费免费| 欧美色综合网站| 国产乱码精品一区二区三区忘忧草| 18欧美乱大交hd1984| 中文字幕av一区二区三区免费看 | 中文字幕亚洲区| 亚洲综合一区二区精品导航| 亚洲一区二区中文在线| 男男gaygay亚洲| 白白色亚洲国产精品| 精品视频色一区| 久久久99久久精品欧美| 亚洲视频资源在线| 爽好多水快深点欧美视频| 国产一区二区影院| 色久优优欧美色久优优| 精品国产百合女同互慰| 国产成人午夜99999| 91久久精品一区二区三| 精品国产sm最大网站| 亚洲精品综合在线| 高清国产一区二区| 欧美一区二区在线视频| 中文字幕在线播放不卡一区| 免费av成人在线| 欧美三级电影精品| 亚洲欧美日韩国产一区二区三区| 美女在线视频一区| 91精品国产一区二区三区香蕉| 亚洲欧美综合在线精品| 国产a久久麻豆| 久久亚洲春色中文字幕久久久| 洋洋av久久久久久久一区| 成人午夜看片网址| 久久久国产一区二区三区四区小说 | 欧美精品久久一区二区三区| 日本高清不卡在线观看| 欧美日韩国产片| 日韩欧美电影一区| 中文无字幕一区二区三区| 国产精品系列在线观看| 欧美成va人片在线观看| 国产福利一区二区| 中文字幕日本不卡| 在线视频中文字幕一区二区| 亚洲国产欧美另类丝袜| 91精品国产一区二区| 精品一区二区综合| 欧美人妖巨大在线| 中文字幕中文在线不卡住| 蜜臀va亚洲va欧美va天堂 | 国产专区欧美精品| 欧美日韩国产一级片| 亚洲欧美国产毛片在线| 国产成人精品免费看| 欧美日韩视频第一区| 成人免费视频在线观看| 精品一区二区免费| 欧美妇女性影城| 亚洲国产精品一区二区久久恐怖片 | 精品久久一区二区| 美女久久久精品| 欧美一卡2卡三卡4卡5免费| 一区二区三区在线观看网站| 成人黄色软件下载| 日韩毛片视频在线看| 成人精品国产一区二区4080| 久久众筹精品私拍模特| 国产精品一区在线观看你懂的| 日韩一区二区视频| 亚洲视频在线一区二区| 欧美日本免费一区二区三区| 国产在线播放一区| 亚洲欧美偷拍另类a∨色屁股| 在线观看日韩av先锋影音电影院| 久久99精品视频| 日韩伦理av电影| 精品久久久久久久一区二区蜜臀| 色天使色偷偷av一区二区| 蜜臀av一区二区在线免费观看| 中文久久乱码一区二区| 欧美一区三区四区| 一区二区三区在线影院| 亚洲国产成人午夜在线一区| 日本高清不卡在线观看| 国产麻豆91精品| 日本三级亚洲精品| 亚洲精品伦理在线| 久久久精品综合| 综合av第一页| 天堂成人国产精品一区| 青青草国产精品97视觉盛宴| 麻豆成人av在线| 99精品欧美一区二区三区综合在线| eeuss影院一区二区三区| 91视频91自| 欧美一区二区三级| 中文字幕乱码久久午夜不卡| 一区二区三区四区乱视频| 亚洲成av人片www| 国内精品免费在线观看| 99久久久国产精品| 日韩免费看的电影| 亚洲激情欧美激情| 国产精品一区在线观看乱码| 日韩一级视频免费观看在线| 26uuu成人网一区二区三区| 一二三四区精品视频| 久久国产视频网| 日本高清不卡视频| 99精品在线免费| 一本大道久久a久久综合婷婷| 国产成a人亚洲| xfplay精品久久| 日本va欧美va瓶| 在线播放/欧美激情| 亚洲妇熟xx妇色黄| 777亚洲妇女| 美女尤物国产一区| 欧美哺乳videos| 韩国v欧美v日本v亚洲v| 久久人人爽爽爽人久久久| 国产精品一区二区久激情瑜伽| 日韩欧美视频一区| 国产一区免费电影| 中文字幕国产一区| av激情综合网| 亚洲一区二区高清| 欧美一区二区三区电影| 激情综合色丁香一区二区| 欧美三级蜜桃2在线观看| 麻豆成人综合网| 亚洲欧洲日韩av| 欧美在线看片a免费观看| 国产一区二区三区免费观看| 欧美成人性战久久| 国产一区二区三区精品视频| 久久久久国产一区二区三区四区| 极品尤物av久久免费看| 久久久不卡影院| 色屁屁一区二区| 午夜国产不卡在线观看视频| 日韩一区二区免费高清| 在线电影欧美成精品| 午夜激情久久久| 久久日韩精品一区二区五区| av男人天堂一区| 日韩在线播放一区二区| 久久久噜噜噜久噜久久综合| 99vv1com这只有精品| 日本一不卡视频| 久久青草欧美一区二区三区| a级高清视频欧美日韩| 亚洲国产精品一区二区尤物区| 日韩一区二区电影| 韩国一区二区三区| 亚洲成人动漫在线观看| 国产三级一区二区| 欧美日韩精品高清| av不卡免费电影| 亚洲va欧美va天堂v国产综合| 欧美日韩国产高清一区二区三区| 蜜臀久久99精品久久久久久9| 亚洲精品一区二区三区精华液| 色哟哟精品一区| 国产高清精品在线| 午夜国产精品一区| 亚洲一区二区三区在线看| 久久影院午夜论| 欧美精品日日鲁夜夜添| 91蝌蚪porny| 国产麻豆91精品| 日韩电影在线一区| 亚洲国产成人精品视频| www久久久久| 777xxx欧美| 91女神在线视频| 国产成a人无v码亚洲福利| 蜜桃av一区二区| 亚洲一区二区三区中文字幕| 国产欧美日本一区二区三区| 日韩精品中文字幕在线不卡尤物| 色哟哟一区二区| 欧美亚洲国产一区二区三区va| 国产成人av电影在线| 国产一区二区三区免费看| 美女任你摸久久|