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

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

?? taglibinsert.js

?? jakarta-taglibs
?? JS
字號:
/* ====================================================================
 * 
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 1999 The Apache Software Foundation.  All rights 
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer. 
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution, if
 *    any, must include the following acknowlegement:  
 *       "This product includes software developed by the 
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowlegement may appear in the software itself,
 *    if and wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
 *    Foundation" must not be used to endorse or promote products derived
 *    from this software without prior written permission. For written 
 *    permission, please contact apache@apache.org.
 *
 * 5. Products derived from this software may not be called "Apache"
 *    nor may "Apache" appear in their names without prior written
 *    permission of the Apache Group.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 *
 * file: tagLibInsert.js
 * author: Dan Mandell [dmandell@stanford.edu]
 * -------------------------------------------
 * Implements the insertTag() function for the useTagLibs.html
 * floater of the UltraDev Custom Tag Library extension. Inserts
 * the selected tag at or around the current selection based on the
 * following conditions:
 * 	1: If the tag has body content, tag is wrapped around current
 *	   selection. If the selection is invalid (not completely
 * 	   surrounding any node) the tag is placed around the nearest
 *	   node which entirely encompasses the selection.
 *	2: If the tag has no body content, there are two subcases:
 *		a: If the selection is an insertion point, the tag is
 *		   inserted at the current insertion point.
 * 		b: If the selection exactly encompasses a node with
 *		   content, the inner body content of the node is
 *		   is replaced with the tag.
 *	3. If the tag is a <TR> or a custom tag surrounding a <TR>,
 *	   the tag is wrapped around the <TR> tag. Custom tags cannot
 *	   be wrapped around other custom tags surrounding a <TR> tag
 * 	   because UltraDev returns the same selection offsets for any
 *	   tag between the previous </TR> tag and the current <TR> tag.
 *	4: In all other cases, the tag is place at the start of the
 *	   the selection. If the selection is invalid, the tag is
 *	   inserted before the nearest valid node.
 * The prefix for the inserted tag is obtained from the prefix
 * corresponding to the current tag library in use specified in the
 * namespace instantiation at the top of the JSP.
 */

var MIN_VAL_SIZE = 1; 		// Minimum allowable length of attribute values
				// Default is 1 to prevent empty entries

var PREFIX_MATCH = "prefix=\"";	// text use to find the prefix attribute within 
				// a tag library namespace instantiation


function insertTag() {
	var tagIndex;
	var tagName;
	var allAtts = "";
	var newValue = "";
	var attributes;
	var tagOpen;  // Custom tag opening
	var tagClose; // Custom tag closing
	var noBodyTag; // Custom tag with no body
	var hasBodyContent; // Boolean value, true if tag has body content of any kind
	var origOffsets; // Offsets of the user's original selection
	var node; // currently selected node
	var offsets; // If the user selected a <TR> tag, new offsets containing the <TR> tag
	var theDOM = dw.getDocumentDOM("document");
	var entireDoc = theDOM.documentElement.outerHTML;
	var tldLoc; // location of TLD incantation for current taglib
	var libPrefix; // the prefix of the tag library currently in use

	if (libName == null) return; // disallow selection of empty option
	if (taglibs[libName] == null) { // refresh memory in case cache was purged
		eval(DWfile.read(TL_DATA_LOC + TL_DATA));
	}

	tagIndex = document.selected_tag.selectedIndex;
	tagName = ((taglibs[libName])[tagIndex])[0];
	attributes = ((taglibs[libName])[tagIndex])[2];
	for (var i = 0; i < attributes.length; i++) { 
		// add a leading space for each attribute
		allAtts += " "; 
		// gather values for all required atts
		newValue = prompt("Enter a value for the " + attributes[i] + " attribute") + "\"";
		if (newValue == "null\"") {
			return; // user cancelled
		}
		while(newValue.length <= MIN_VAL_SIZE) {

			newValue = prompt("Required. Enter a value for the " + attributes[i] + " attribute") + "\"";
			if (newValue == "null\"") return; // user cancelled
		}
		allAtts += attributes[i] + "=" + "\"" + newValue;
	}

	hasBodyContent = ((taglibs[libName])[tagIndex])[1];
	libPrefix = getTaglibToPrefix();

	// Find the offsets. If the currently selected tag is <TR>, we must convert the selection
	// to a node, then back to offsets, to compensate for the fact the UltraDev returns
	// the inner HTML of the selection when a <TR> is selected, and the outer HTML in all
	// other cases.

	origOffsets = theDOM.getSelection(true);
	node = theDOM.offsetsToNode(origOffsets[0],origOffsets[origOffsets.length-1]);
	if (node.tagName != "TR") offsets = origOffsets;
	else offsets = theDOM.nodeToOffsets(node);

	if(hasBodyContent == false) { 
		// No body content. Insert after original selection.
		noBodyTag = "<" + libPrefix + ":" + tagName + allAtts + " />";
		if(offsets[0] == theDOM.nodeToOffsets(node)[0] &&
			offsets[1] == theDOM.nodeToOffsets(node)[1] &&
			node.childNodes.length > 0) {  // if we've selected an entire tag with
			//alert("Whole tag selected"); // body content, replace the body content
			node.innerHTML = noBodyTag;    // with the new tag
		}
		else theDOM.insertHTML(noBodyTag, false);
	}

	else {  // Tag has body content. Must insert around current selection.
		// Replace outer HTML of whole document, with the tagOpen and
		// tagClose statements around the currently selected node.

		tagOpen = "<" + libPrefix + ":" + tagName + allAtts + ">";
		tagClose = "</" + libPrefix + ":" + tagName + ">";
		theDOM.documentElement.outerHTML = entireDoc.substring(0,offsets[0]) + tagOpen + 
				entireDoc.substring(offsets[0],offsets[offsets.length-1]) + tagClose +
				entireDoc.substring(offsets[offsets.length-1]);

	}
	dw.setLiveDataMode(true); // re-translate page so new tag shows up
}

/* function: setTaglibToPrefix()
 * -----------------------------
 * Checks the namespace of all tag libraries introduced in the current page.
 * Sets the current tag library selected to the name of the prefix, so when
 * we insert a tag, we use the prefix for the tag library. This practice allows
 * a tag library to be used under any prefix on any page.
 */

function getTaglibToPrefix() {
	var theDOM = dw.getDocumentDOM("document");
	var tldIndex;
	var prefixIndex;
	var childText;
	var prefix;

	for (i = 0; i < theDOM.childNodes.length; i++) {
		childText = theDOM.childNodes[i].outerHTML;
		tldIndex= childText.indexOf(libName + ".tld");
		if (tldIndex != -1) {
			if (childText.indexOf(PREFIX_MATCH) != -1) {
				prefix = childText.substring(childText.indexOf(PREFIX_MATCH) + 
					PREFIX_MATCH.length, childText.lastIndexOf("\""));
				// now the name of the current tag library is set to the taglib's prefix
				break;
			}
		}
	}
	return prefix;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美少妇xxx| 亚洲午夜私人影院| 欧美丝袜自拍制服另类| 成人aaaa免费全部观看| 丁香激情综合五月| 成人妖精视频yjsp地址| 狂野欧美性猛交blacked| 91精品午夜视频| 欧美一级理论片| 337p日本欧洲亚洲大胆精品| 久久蜜桃av一区二区天堂| 久久综合成人精品亚洲另类欧美| 91麻豆精品国产91久久久久| 日韩欧美在线1卡| 国产一区二区三区在线看麻豆| 青青草一区二区三区| 久久97超碰国产精品超碰| 国产高清久久久| 日本精品一区二区三区四区的功能| 色吊一区二区三区| 日韩欧美国产不卡| 亚洲第一福利一区| **欧美大码日韩| 舔着乳尖日韩一区| 国产在线麻豆精品观看| 99精品在线观看视频| 7777精品伊人久久久大香线蕉的| 精品蜜桃在线看| 国产精品盗摄一区二区三区| 亚洲成人tv网| 成人免费看片app下载| 欧美日韩在线不卡| 国产片一区二区三区| 亚洲午夜久久久久久久久电影网 | 久久先锋影音av鲁色资源| 久久久精品天堂| 亚洲一区二区三区四区五区黄 | 欧美日韩中文精品| 91精品国产一区二区三区 | 99久久久久久| 日韩一区二区不卡| 亚洲男人天堂一区| 国产一区啦啦啦在线观看| 欧美亚洲国产一区二区三区| 久久午夜老司机| 亚洲成人综合网站| av午夜一区麻豆| www国产精品av| 日韩在线一区二区| 91福利资源站| 国产精品美女www爽爽爽| 麻豆久久一区二区| 欧美精品一二三| 91蜜桃免费观看视频| 国产日本亚洲高清| 六月婷婷色综合| 777午夜精品视频在线播放| 国产精品乱码久久久久久| 国内精品伊人久久久久av影院| 欧美私模裸体表演在线观看| 亚洲成精国产精品女| 日本欧美大码aⅴ在线播放| 亚洲www啪成人一区二区麻豆| 不卡视频一二三四| 国产欧美一区二区三区在线看蜜臀 | 91麻豆精品国产91久久久久久久久| 综合自拍亚洲综合图不卡区| 国产精品正在播放| 久久蜜桃一区二区| 国产做a爰片久久毛片| 精品乱人伦一区二区三区| 奇米色一区二区三区四区| 亚洲成人在线免费| 欧美日韩久久一区二区| 亚洲国产美女搞黄色| 欧美色图免费看| 香蕉成人伊视频在线观看| 欧美无砖砖区免费| 天天综合天天做天天综合| 久久亚洲私人国产精品va媚药| 久久婷婷久久一区二区三区| 激情偷乱视频一区二区三区| 精品88久久久久88久久久| 狠狠色综合色综合网络| 国产午夜精品美女毛片视频| 国产一区啦啦啦在线观看| 中文字幕av一区 二区| 91在线视频18| 亚洲h精品动漫在线观看| 日韩一区二区三区精品视频| 精品在线观看免费| 久久久久久久精| 一区二区三区久久久| 欧美三片在线视频观看| 久久精品国产第一区二区三区| 精品国产乱码久久久久久1区2区| 国产一区二区三区在线观看免费视频| 丰满少妇久久久久久久| 亚洲女与黑人做爰| 欧美日本精品一区二区三区| 狠狠色丁香久久婷婷综| 中文字幕巨乱亚洲| 欧美日韩一区二区三区在线看| 美日韩一级片在线观看| 亚洲国产高清不卡| 欧美日韩亚州综合| 国产福利一区在线观看| 亚洲自拍都市欧美小说| 久久久99精品久久| 欧美日韩欧美一区二区| 国产精品18久久久久久久久久久久 | 亚洲欧美激情视频在线观看一区二区三区| 色乱码一区二区三区88| 麻豆91在线播放免费| 亚洲精品videosex极品| 精品va天堂亚洲国产| 欧美在线一区二区三区| 国产成人鲁色资源国产91色综 | 欧美亚洲国产一区二区三区va| 日本美女一区二区三区视频| 国产精品久久久久久久久免费丝袜 | 亚洲国产日韩一级| 久久一日本道色综合| 欧美吞精做爰啪啪高潮| 懂色av一区二区在线播放| 图片区小说区国产精品视频| 亚洲色图丝袜美腿| 国产欧美日韩综合精品一区二区| 欧美人牲a欧美精品| 91视频免费看| 成人午夜私人影院| 国产一区美女在线| 免费成人在线观看| 香蕉成人伊视频在线观看| 亚洲欧美偷拍三级| 中文字幕第一页久久| 欧美zozo另类异族| 欧美日本一区二区在线观看| 欧美综合天天夜夜久久| 成人激情av网| 国产精品一区三区| 久久精品噜噜噜成人88aⅴ| 亚洲福利视频一区| 一区二区三区日韩欧美精品 | 国产精品传媒入口麻豆| 国产日韩视频一区二区三区| 久久先锋影音av| 日韩一区二区免费在线电影 | 欧美大片在线观看一区二区| 色欧美日韩亚洲| 99re66热这里只有精品3直播 | 一区二区三区91| 18欧美亚洲精品| 亚洲三级在线观看| 国产精品久久免费看| 国产精品色呦呦| 亚洲人成精品久久久久| 亚洲欧美色图小说| 一区二区三区国产精华| 午夜视频久久久久久| 蜜桃在线一区二区三区| 激情久久五月天| 粉嫩久久99精品久久久久久夜| 成人激情视频网站| 91免费国产视频网站| 欧美日韩国产色站一区二区三区| 欧美主播一区二区三区美女| 欧美乱妇23p| 久久综合九色综合欧美就去吻| 欧美精品一区视频| 国产精品久久久久一区 | 在线观看91精品国产入口| 欧美三区免费完整视频在线观看| 欧美一级艳片视频免费观看| 精品福利视频一区二区三区| 国产精品久久久久久久久果冻传媒 | 成人黄色小视频在线观看| 91伊人久久大香线蕉| 国产精品乡下勾搭老头1| 韩国av一区二区| 色综合中文综合网| 91玉足脚交白嫩脚丫在线播放| 欧美日韩一区在线观看| 精品国产一区二区在线观看| 亚洲国产精品精华液2区45| 亚洲成人av中文| 国产精品资源网站| 欧美探花视频资源| 中文字幕免费一区| 亚洲图片欧美综合| 国产成a人亚洲精| 欧美天堂一区二区三区| 国产亚洲综合性久久久影院| 亚洲女子a中天字幕| 国产精品资源在线观看| 欧美精品丝袜中出| 亚洲视频免费在线| 国产又黄又大久久| 欧美日韩一区二区在线观看视频 | 99综合电影在线视频|