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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? fcktools.js

?? 這個(gè)寫的就更好了
?? JS
?? 第 1 頁 / 共 2 頁
字號:
 * Adds an option to a SELECT element.
 */
FCKTools.AddSelectOption = function( selectElement, optionText, optionValue )
{
	var oOption = FCKTools.GetElementDocument( selectElement ).createElement( "OPTION" ) ;

	oOption.text	= optionText ;
	oOption.value	= optionValue ;

	selectElement.options.add(oOption) ;

	return oOption ;
}

FCKTools.RunFunction = function( func, thisObject, paramsArray, timerWindow )
{
	if ( func )
		this.SetTimeout( func, 0, thisObject, paramsArray, timerWindow ) ;
}

FCKTools.SetTimeout = function( func, milliseconds, thisObject, paramsArray, timerWindow )
{
	return ( timerWindow || window ).setTimeout(
		function()
		{
			if ( paramsArray )
				func.apply( thisObject, [].concat( paramsArray ) ) ;
			else
				func.apply( thisObject ) ;
		},
		milliseconds ) ;
}

FCKTools.SetInterval = function( func, milliseconds, thisObject, paramsArray, timerWindow )
{
	return ( timerWindow || window ).setInterval(
		function()
		{
			func.apply( thisObject, paramsArray || [] ) ;
		},
		milliseconds ) ;
}

FCKTools.ConvertStyleSizeToHtml = function( size )
{
	return size.EndsWith( '%' ) ? size : parseInt( size, 10 ) ;
}

FCKTools.ConvertHtmlSizeToStyle = function( size )
{
	return size.EndsWith( '%' ) ? size : ( size + 'px' ) ;
}

// START iCM MODIFICATIONS
// Amended to accept a list of one or more ascensor tag names
// Amended to check the element itself before working back up through the parent hierarchy
FCKTools.GetElementAscensor = function( element, ascensorTagNames )
{
//	var e = element.parentNode ;
	var e = element ;
	var lstTags = "," + ascensorTagNames.toUpperCase() + "," ;

	while ( e )
	{
		if ( lstTags.indexOf( "," + e.nodeName.toUpperCase() + "," ) != -1 )
			return e ;

		e = e.parentNode ;
	}
	return null ;
}
// END iCM MODIFICATIONS

FCKTools.CreateEventListener = function( func, params )
{
	var f = function()
	{
		var aAllParams = [] ;

		for ( var i = 0 ; i < arguments.length ; i++ )
			aAllParams.push( arguments[i] ) ;

		func.apply( this, aAllParams.concat( params ) ) ;
	}

	return f ;
}

FCKTools.IsStrictMode = function( document )
{
	// There is no compatMode in Safari, but it seams that it always behave as
	// CSS1Compat, so let's assume it as the default for that browser.
	return ( 'CSS1Compat' == ( document.compatMode || ( FCKBrowserInfo.IsSafari ? 'CSS1Compat' : null ) ) ) ;
}

// Transforms a "arguments" object to an array.
FCKTools.ArgumentsToArray = function( args, startIndex, maxLength )
{
	startIndex = startIndex || 0 ;
	maxLength = maxLength || args.length ;

	var argsArray = new Array() ;

	for ( var i = startIndex ; i < startIndex + maxLength && i < args.length ; i++ )
		argsArray.push( args[i] ) ;

	return argsArray ;
}

FCKTools.CloneObject = function( sourceObject )
{
	var fCloneCreator = function() {} ;
	fCloneCreator.prototype = sourceObject ;
	return new fCloneCreator ;
}

// Appends a bogus <br> at the end of the element, if not yet available.
FCKTools.AppendBogusBr = function( element )
{
	if ( !element )
		return ;

	var eLastChild = this.GetLastItem( element.getElementsByTagName('br') ) ;

	if ( !eLastChild || ( eLastChild.getAttribute( 'type', 2 ) != '_moz' && eLastChild.getAttribute( '_moz_dirty' ) == null ) )
	{
		var doc = this.GetElementDocument( element ) ;

		if ( FCKBrowserInfo.IsOpera )
			element.appendChild( doc.createTextNode('') ) ;
		else
			element.appendChild( this.CreateBogusBR( doc ) ) ;
	}
}

FCKTools.GetLastItem = function( list )
{
	if ( list.length > 0 )
		return list[ list.length - 1 ] ;

	return null ;
}

FCKTools.GetDocumentPosition = function( w, node )
{
	var x = 0 ;
	var y = 0 ;
	var curNode = node ;
	var prevNode = null ;
	var curWindow = FCKTools.GetElementWindow( curNode ) ;
	while ( curNode && !( curWindow == w && ( curNode == w.document.body || curNode == w.document.documentElement ) ) )
	{
		x += curNode.offsetLeft - curNode.scrollLeft ;
		y += curNode.offsetTop - curNode.scrollTop ;

		if ( ! FCKBrowserInfo.IsOpera )
		{
			var scrollNode = prevNode ;
			while ( scrollNode && scrollNode != curNode )
			{
				x -= scrollNode.scrollLeft ;
				y -= scrollNode.scrollTop ;
				scrollNode = scrollNode.parentNode ;
			}
		}

		prevNode = curNode ;
		if ( curNode.offsetParent )
			curNode = curNode.offsetParent ;
		else
		{
			if ( curWindow != w )
			{
				curNode = curWindow.frameElement ;
				prevNode = null ;
				if ( curNode )
					curWindow = curNode.contentWindow.parent ;
			}
			else
				curNode = null ;
		}
	}

	// document.body is a special case when it comes to offsetTop and offsetLeft values.
	// 1. It matters if document.body itself is a positioned element;
	// 2. It matters is when we're in IE and the element has no positioned ancestor.
	// Otherwise the values should be ignored.
	if ( FCKDomTools.GetCurrentElementStyle( w.document.body, 'position') != 'static'
			|| ( FCKBrowserInfo.IsIE && FCKDomTools.GetPositionedAncestor( node ) == null ) )
	{
		x += w.document.body.offsetLeft ;
		y += w.document.body.offsetTop ;
	}

	return { "x" : x, "y" : y } ;
}

FCKTools.GetWindowPosition = function( w, node )
{
	var pos = this.GetDocumentPosition( w, node ) ;
	var scroll = FCKTools.GetScrollPosition( w ) ;
	pos.x -= scroll.X ;
	pos.y -= scroll.Y ;
	return pos ;
}

FCKTools.ProtectFormStyles = function( formNode )
{
	if ( !formNode || formNode.nodeType != 1 || formNode.tagName.toLowerCase() != 'form' )
		return [] ;
	var hijackRecord = [] ;
	var hijackNames = [ 'style', 'className' ] ;
	for ( var i = 0 ; i < hijackNames.length ; i++ )
	{
		var name = hijackNames[i] ;
		if ( formNode.elements.namedItem( name ) )
		{
			var hijackNode = formNode.elements.namedItem( name ) ;
			hijackRecord.push( [ hijackNode, hijackNode.nextSibling ] ) ;
			formNode.removeChild( hijackNode ) ;
		}
	}
	return hijackRecord ;
}

FCKTools.RestoreFormStyles = function( formNode, hijackRecord )
{
	if ( !formNode || formNode.nodeType != 1 || formNode.tagName.toLowerCase() != 'form' )
		return ;
	if ( hijackRecord.length > 0 )
	{
		for ( var i = hijackRecord.length - 1 ; i >= 0 ; i-- )
		{
			var node = hijackRecord[i][0] ;
			var sibling = hijackRecord[i][1] ;
			if ( sibling )
				formNode.insertBefore( node, sibling ) ;
			else
				formNode.appendChild( node ) ;
		}
	}
}

// Perform a one-step DFS walk.
FCKTools.GetNextNode = function( node, limitNode )
{
	if ( node.firstChild )
		return node.firstChild ;
	else if ( node.nextSibling )
		return node.nextSibling ;
	else
	{
		var ancestor = node.parentNode ;
		while ( ancestor )
		{
			if ( ancestor == limitNode )
				return null ;
			if ( ancestor.nextSibling )
				return ancestor.nextSibling ;
			else
				ancestor = ancestor.parentNode ;
		}
	}
	return null ;
}

FCKTools.GetNextTextNode = function( textnode, limitNode, checkStop )
{
	node = this.GetNextNode( textnode, limitNode ) ;
	if ( checkStop && node && checkStop( node ) )
		return null ;
	while ( node && node.nodeType != 3 )
	{
		node = this.GetNextNode( node, limitNode ) ;
		if ( checkStop && node && checkStop( node ) )
			return null ;
	}
	return node ;
}

/**
 * Merge all objects passed by argument into a single object.
 */
FCKTools.Merge = function()
{
	var args = arguments ;
	var o = args[0] ;

	for ( var i = 1 ; i < args.length ; i++ )
	{
		var arg = args[i] ;
		for ( var p in arg )
			o[p] = arg[p] ;
	}

	return o ;
}

/**
 * Check if the passed argument is a real Array. It may not working when
 * calling it cross windows.
 */
FCKTools.IsArray = function( it )
{
	return ( it instanceof Array ) ;
}

/**
 * Appends a "length" property to an object, containing the number of
 * properties available on it, excluded the append property itself.
 */
FCKTools.AppendLengthProperty = function( targetObject, propertyName )
{
	var counter = 0 ;

	for ( var n in targetObject )
		counter++ ;

	return targetObject[ propertyName || 'length' ] = counter ;
}

/**
 * Gets the browser parsed version of a css text (style attribute value). On
 * some cases, the browser makes changes to the css text, returning a different
 * value. For example, hexadecimal colors get transformed to rgb().
 */
FCKTools.NormalizeCssText = function( unparsedCssText )
{
	// Injects the style in a temporary span object, so the browser parses it,
	// retrieving its final format.
	var tempSpan = document.createElement( 'span' ) ;
	tempSpan.style.cssText = unparsedCssText ;
	return tempSpan.style.cssText ;
}

/**
 * Binding the "this" reference to an object for a function.
 */
FCKTools.Bind = function( subject, func )
{
  return function(){ return func.apply( subject, arguments ) ; } ;
}

/**
 * Retrieve the correct "empty iframe" URL for the current browser, which
 * causes the minimum fuzz (e.g. security warnings in HTTPS, DNS error in
 * IE5.5, etc.) for that browser, making the iframe ready to DOM use whithout
 * having to loading an external file.
 */
FCKTools.GetVoidUrl = function()
{
	if ( FCK_IS_CUSTOM_DOMAIN )
		return "javascript: void( function(){" +
			"document.open();" +
			"document.write('<html><head><title></title></head><body></body></html>');" +
			"document.domain = '" + FCK_RUNTIME_DOMAIN + "';" +
			"document.close();" +
			"}() ) ;";

	if ( FCKBrowserInfo.IsIE )
	{
		if ( FCKBrowserInfo.IsIE7 || !FCKBrowserInfo.IsIE6 )
			return "" ;					// IE7+ / IE5.5
		else
			return "javascript: '';" ;	// IE6+
	}

	return "javascript: void(0);" ;		// All other browsers.
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品小仙女| 91国在线观看| 一区二区激情视频| 国产午夜三级一区二区三| 在线电影院国产精品| 91蜜桃网址入口| 国产自产v一区二区三区c| 亚洲一区电影777| 国产精品萝li| 国产日产欧产精品推荐色| 欧美女孩性生活视频| 91亚洲永久精品| 国产成人在线免费| 精品一区二区三区不卡| 午夜视频在线观看一区二区三区| 亚洲欧洲日产国产综合网| 久久久久久久久久久久久久久99 | 国产一区在线精品| 亚洲国产另类av| 亚洲视频资源在线| 日本一区二区三区免费乱视频| 日韩欧美国产麻豆| 欧美日韩大陆一区二区| 在线精品视频免费观看| 91在线观看污| 成人妖精视频yjsp地址| 国产成人久久精品77777最新版本| 日本不卡在线视频| 日韩和欧美一区二区三区| 亚洲香蕉伊在人在线观| 一区二区三区四区视频精品免费| 国产精品欧美久久久久一区二区| 欧美国产精品中文字幕| 国产欧美日韩不卡免费| 国产欧美精品国产国产专区| 精品福利一区二区三区| 欧美精品一区二区三区蜜桃| 日韩精品专区在线影院观看| 日韩欧美中文字幕一区| 日韩美女视频一区二区在线观看| 欧美一区二区三区四区视频| 欧美一区二区三区的| 日韩欧美高清一区| 日韩久久精品一区| 久久综合狠狠综合| 欧美激情一区二区三区在线| 国产精品久久久久久久久动漫 | 国产精品色婷婷久久58| 国产欧美一区二区三区鸳鸯浴| 国产日韩精品一区二区三区在线| 国产日产欧产精品推荐色| 国产精品久久久久久久浪潮网站| 成人欧美一区二区三区视频网页| 亚洲乱码精品一二三四区日韩在线| 亚洲精品综合在线| 水野朝阳av一区二区三区| 精品无人区卡一卡二卡三乱码免费卡| 蜜臀av一区二区在线免费观看| 国产一区久久久| 北条麻妃国产九九精品视频| 日本乱码高清不卡字幕| 欧美剧在线免费观看网站| 日韩一级片网址| 欧美极品美女视频| 亚洲男人天堂av| 天堂影院一区二区| 经典三级一区二区| 99久久国产综合精品女不卡| 日本道色综合久久| 日韩一级完整毛片| 1000部国产精品成人观看| 亚洲h在线观看| 国产一区二区伦理片| 99热精品国产| 欧美一区二区三区播放老司机| 久久久久免费观看| 亚洲综合丁香婷婷六月香| 蜜臀a∨国产成人精品| 丁香亚洲综合激情啪啪综合| 在线视频综合导航| 久久婷婷综合激情| 亚洲国产另类精品专区| 国产精品亚洲第一区在线暖暖韩国| 色综合天天综合在线视频| 日韩欧美在线影院| 亚洲免费观看高清完整| 国产制服丝袜一区| 欧美日韩一区二区三区在线| 国产精品午夜免费| 日韩福利视频导航| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 亚洲欧洲av一区二区三区久久| 日韩精品欧美精品| 99热这里都是精品| 久久亚洲二区三区| 亚洲成a人v欧美综合天堂| 国产精品99久| 欧美一区二区三区免费观看视频| 亚洲欧美色一区| 国产综合色视频| 欧美丰满嫩嫩电影| 亚洲女女做受ⅹxx高潮| 国产suv一区二区三区88区| 日韩一区二区三区免费看| 亚洲乱码中文字幕| 成人高清免费在线播放| 欧美va在线播放| 日韩精品电影在线| 在线观看精品一区| 国产精品久久久久久久久免费相片| 久久国产麻豆精品| 日韩亚洲电影在线| 亚洲成精国产精品女| 91免费看片在线观看| 欧美国产在线观看| 国产美女av一区二区三区| 欧美一卡2卡3卡4卡| 亚洲成人午夜影院| 欧美性三三影院| 一区二区三区蜜桃网| 91亚洲国产成人精品一区二区三| 国产嫩草影院久久久久| 国产美女主播视频一区| 精品免费日韩av| 国内精品久久久久影院薰衣草| 3d成人动漫网站| 日本sm残虐另类| 91精品国产综合久久蜜臀| 日韩国产欧美在线视频| 91.com视频| 久久精品99久久久| 337p粉嫩大胆噜噜噜噜噜91av| 麻豆成人免费电影| 亚洲精品一区二区三区四区高清| 久久91精品国产91久久小草| 精品久久久久99| 国产精品一级片在线观看| 久久精品视频免费| 国产成人av电影在线观看| 欧美经典一区二区| 成人免费视频一区| 日韩毛片精品高清免费| 色视频成人在线观看免| 亚洲电影一区二区| 欧美一区二区视频在线观看2022| 奇米精品一区二区三区在线观看 | 一区二区三区四区高清精品免费观看| 91在线码无精品| 亚洲国产精品一区二区久久恐怖片| 色吊一区二区三区| 日本美女一区二区三区视频| 日韩欧美不卡一区| 国产精品一区二区三区四区| 国产精品久久久久aaaa| 欧美自拍丝袜亚洲| 麻豆国产一区二区| 国产亚洲一本大道中文在线| 成人aaaa免费全部观看| 一级日本不卡的影视| 91精品蜜臀在线一区尤物| 韩国欧美国产一区| 亚洲欧洲色图综合| 欧美精品日日鲁夜夜添| 久久黄色级2电影| 国产精品久久网站| 欧美久久久久久久久久 | 欧美性感一类影片在线播放| 五月天激情综合| 久久伊99综合婷婷久久伊| 粉嫩高潮美女一区二区三区| 亚洲欧美成人一区二区三区| 欧美精品久久99久久在免费线| 精品中文字幕一区二区| 亚洲女同一区二区| 精品久久一区二区| 色一情一乱一乱一91av| 精品在线你懂的| 亚洲美女在线一区| 日韩三级高清在线| 91麻豆精品秘密| 久久精品av麻豆的观看方式| 自拍偷拍亚洲欧美日韩| 日韩免费观看2025年上映的电影| av中文一区二区三区| 免费精品视频在线| 最新欧美精品一区二区三区| 91精品国产91久久久久久最新毛片| 大桥未久av一区二区三区中文| 午夜视频在线观看一区二区三区| 亚洲国产成人私人影院tom| 欧美一卡二卡在线| 日本韩国一区二区| 国产suv精品一区二区883| 青青青爽久久午夜综合久久午夜| 日韩伦理电影网| 久久久亚洲高清| 欧美一区二区三区在线| 欧美这里有精品| 波多野结衣一区二区三区| 国内精品免费**视频|