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

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

?? rte.js

?? 1、激活企業硬件投資
?? JS
?? 第 1 頁 / 共 2 頁
字號:
      if (on[i]) r.execCommand(cmd[i], false, on[i]);
   }
}

// setValue(): called from reset() to make a select list show the current font
// or style attributes
function selValue(el, str)
{
   if (!RichEditor.txtView) return;      // Disabled in View Source mode
   for (var i = 0; i < el.length; i++) {
      if ((!el[i].value && el[i].text == str) || el[i].value == str) {
         el.selectedIndex = i;
         return;
      }
   }
   el.selectedIndex = 0;
}

// setState(): called from reset() to make a button represent the state
// of the current text.  Pressed is on, unpressed is off.
function setState(el, on)
{
   if (!RichEditor.txtView) return;      // Disabled in View Source mode
   if (!el.disabled) {
      if (on) {
         el.defaultState = el.className = "down";
      } else {
         el.defaultState = el.className = null;
      }
   }
}

// getStyle(): called to obtain the class or type of formatting applied to an element,
// This is used by reset() to set the state of the toolbar to indicate the class of
// the current element.
function getStyle() {
   var style = document.queryCommandValue('FormatBlock');
   if (style == "Normal") {
      doc.focus();
      var rng = document.selection.createRange();
      if (typeof(rng.parentElement) != "undefined") {
         var el = rng.parentElement();
         var tag = el.nodeName.toUpperCase();
         var str = el.className.toLowerCase();
         if (!(tag == "DIV" && el.id == "doc" && str == "textedit")) {
            if (tag == "SPAN") {
               style = "." + str;
            } else if (str == "") {
               style = tag;
            } else {
               style = tag + "." + str;
            }
         }
         return style;
      }
   }
   return style;
}

// getfontface(): called to obtain the face attribute applied to a font tag,
// This is used by reset() to set the state of the toolbar to indicate the class of
// the current element.
function getfontface()
{
var family = document.selection.createRange(); //create text range

// don't get font face for image or table
if (document.selection.type == 'Control') {
   return;
}

var el = family.parentElement(); //get parent element
var tag = el.nodeName.toUpperCase(); //convert tag element to upper case

	if (typeof(el.parentElement) != "undefined" && tag == "FONT") { //only do function if tag is font - this is for greater execution speed
		var elface = el.getAttribute('FACE'); //get the font tags FACE attribute
		return elface; //return the value of the face attribute to the reset() function
	}
}

// markSelectedElement(): called by onClick and onKeyup events
// on the contectEditable area
function markSelectedElement() {

   RichEditor.selectedImage = null;

   var r = document.selection.createRange();

   if (document.selection.type != 'Text') {
      if (r.length == 1) {
         if (r.item(0).tagName == "IMG") {
            RichEditor.selectedImage = r.item(0);
         }
      }
   }
}

// reset(): called from all over the place to make the toolbar
// represent the current text. If el specified, it was called from
// hover(off)
function reset(el)
{
   if (!RichEditor.txtView) return;      // Disabled in View Source mode
   if (!el) color.style.display = 'none';
   if (!el || el == ctlStyle)         selValue(ctlStyle, getStyle());
   if (!el || el == ctlFont)         selValue(ctlFont, getfontface());
   if (!el || el == ctlSize)         selValue(ctlSize, document.queryCommandValue('FontSize'));
   if (!el || el == btnBold)         setState(btnBold, document.queryCommandValue('Bold'));
   if (!el || el == btnItalic)         setState(btnItalic,   document.queryCommandValue('Italic'));
   if (!el || el == btnUnderline)      setState(btnUnderline, document.queryCommandValue('Underline'));
   if (!el || el == btnStrikethrough)   setState(btnStrikethrough, document.queryCommandValue('Strikethrough'));
   if (!el || el == btnLeftJustify)   setState(btnLeftJustify, document.queryCommandValue('JustifyLeft'));
   if (!el || el == btnCenter)         setState(btnCenter,   document.queryCommandValue('JustifyCenter'));
   if (!el || el == btnRightJustify)   setState(btnRightJustify, document.queryCommandValue('JustifyRight'));
   if (!el || el == btnFullJustify)   setState(btnFullJustify, document.queryCommandValue('JustifyFull'));
   if (!el || el == btnNumList)      setState(btnNumList, document.queryCommandValue('InsertOrderedList'));
   if (!el || el == btnBulList)      setState(btnBulList, document.queryCommandValue('InsertUnorderedList'));
}

// hover(): Handles mouse hovering over toolbar buttons
function hover(on)
{
   if (!RichEditor.txtView) return;      // Disabled in View Source mode
   var el = window.event.srcElement;
   if (el && !el.disabled && el.nodeName == "IMG" && el.className != "spacer") {
      if (on) {
         el.className = "hover";
      } else {
         el.className = el.defaultState ? el.defaultState : null;
      }
   }
}
// hover(): Handles mouse clicks on toolbar buttons
function press(on)
{
   if (!RichEditor.txtView) return;      // Disabled in View Source mode
   var el = window.event.srcElement;
   if (el && !el.disabled && el.nodeName == "IMG" && el.className != "spacer") {
      if (on) {
         el.className = "down";
      } else {
         el.className = el.className == "down" ? "hover" : el.defaultState ? el.defaultState : null;
      }
   }
}

// addTag(): This is the handler for the style dropdown.  This takes value
// selected and interprates it and makes the necessary changes to the HTML to
// apply this style.
function addTag(obj) {

   if (!RichEditor.txtView) return;      // Disabled in View Source mode

   // Determine the type of element we are dealing with.
   // TYPE 0 IS NORMAL-TAG, 1 IS CLASS, 2 IS SUBCLASS, 3 = Format Block command
   var value = obj[obj.selectedIndex].value;
   if (!value) {                        // Format Block
      sel(obj);
      return;
   }

   var type = 0;                        // TAG

   if (value.indexOf(".") == 0) {            // .className
      type = 1;
   } else if (value.indexOf(".") != -1) {      // TAG.className
      type = 2;
   }

   doc.focus();

   // Pick up the highlighted text
   var r = document.selection.createRange();
   r.select();
   var s = r.htmlText;

   // If we have some selected text, then ignore silly selections
   if (s == " " || s == "&nbsp;") {
      return;
   }

   // How we apply formatting is based upon the type of formitting being
   // done.
   switch(type)
   {
   case 1:
      // class: Wrap the selected text with a span of the specified
      // class name
      value = value.substring(1,value.length);
      r.pasteHTML("<span class="+value+">" + r.htmlText + "</span>")
      break;

   case 2:
      // subclass: split the value into tag + class
      value = value.split(".");
      r.pasteHTML('<' + value[0] + ' class="' + value[1] +'">'
               + r.htmlText
               + '</' + value[0] + '>'
            );
      break;

   default:
      // TAG: wrap up the highlighted text with the specified tag
      r.pasteHTML("<"+value+">"+r.htmlText+"</"+value+">")
      break;
   }
}

// initStyleDropdown(): This takes the passed styleList and generates the style
// dropdown list box from it.
function initStyleDropdown(styleList) {

   // Build the option list for the styles dropdown from the passed styles
   for (var i = 0; i < styleList.length; i++) {
      var oOption = document.createElement("OPTION");
      if (styleList[i][0]) oOption.value = styleList[i][0];
      oOption.text = styleList[i][1];
      oOption.style.backgroundColor = 'white';
      document.all.ctlStyle.add(oOption);
   }
}

// applyOptions(): This takes the passed options string and actions them.
// Called during the init process.
function applyOptions(str)
{
   var options = str.split(";");
   for (var i = 0; i < options.length; i++) {
      var eq = options[i].indexOf('=');
      var on = eq == -1 ? true : "yes;true;1".indexOf(options[i].substr(eq+1).toLowerCase()) != -1;
      var name = eq == -1 ? options[i] : options[i].substr(0,eq);
      var el = document.all("feature" + name);
      if (el) {
         el.runtimeStyle.display = (on ? 'inline' : 'none'); 
      } else {
         if (!RichEditor.aOptions) RichEditor.aOptions = new Array;
         RichEditor.aOptions[name] = on;
      }
   }
}

// getOption(): Get the value for a previously set option or return undefined if
// the option is not set.
function getOption(name)
{
   if (RichEditor.aOptions) return RichEditor.aOptions[name];
   return;   // Undefined
} 

// Handle drag and drop events into the editor window.  Until we
// work out how to handle these better (which requires co-operation
// from the code being dragged from as far as I can tell) we simply
// disable the functionality.
function handleDrag(n)
{
   // if drag and drop is disabled, then cancel the dragdrop
   // events
   if (!getOption("dragdrop"))
   {
      switch(n) {
      case 0:   // ondragenter
         window.event.dataTransfer.dropEffect = "none";
         break;
      }
      // Cancel the event
      window.event.returnValue = false;
   }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久无码精品亚洲日韩按摩| 国产在线精品一区二区夜色 | 高清不卡一二三区| 日韩国产精品久久久久久亚洲| 亚洲精品成人在线| 亚洲资源中文字幕| 一区二区三区日韩精品| 亚洲精品免费看| 亚洲成在人线免费| 另类专区欧美蜜桃臀第一页| 麻豆传媒一区二区三区| 国产老妇另类xxxxx| 国产精品丝袜在线| 欧美电影免费观看高清完整版在| 欧美日韩国产一二三| 在线观看av一区二区| 欧美群妇大交群中文字幕| 欧美男同性恋视频网站| 欧美一区二区视频观看视频 | 国产欧美精品一区二区三区四区 | 99久久国产综合精品色伊 | 天天综合色天天| 激情五月播播久久久精品| 成人夜色视频网站在线观看| 91久久精品网| 日韩三级高清在线| 日本一区二区不卡视频| 一区二区三区国产精品| 久久99精品久久只有精品| 成人久久视频在线观看| 欧美丝袜丝交足nylons| www亚洲一区| 亚洲一区av在线| 国产精品99久久久| 欧美三级电影在线看| 2020国产精品久久精品美国| 亚洲啪啪综合av一区二区三区| 日韩高清在线观看| av不卡在线播放| 日韩午夜精品视频| 一区二区三区四区蜜桃| 国产尤物一区二区| 欧美日韩国产小视频| 国产精品网站在线播放| 国产精品正在播放| 欧美人伦禁忌dvd放荡欲情| 久久久综合视频| 免费av网站大全久久| 色综合久久久网| 国产亚洲女人久久久久毛片| 图片区小说区区亚洲影院| 99久久精品情趣| 欧美激情一区在线观看| 美女www一区二区| 欧美午夜精品电影| 亚洲欧洲另类国产综合| 国产乱码精品一区二区三区av| 欧美精品第1页| 亚洲图片欧美色图| 91视频com| 亚洲欧洲综合另类在线| jizzjizzjizz欧美| 久久久九九九九| 久久国产欧美日韩精品| 在线播放视频一区| 亚洲国产精品久久不卡毛片 | 91视视频在线观看入口直接观看www | av高清不卡在线| 日本一区二区三区久久久久久久久不 | 欧美久久免费观看| 亚洲免费av网站| 日本高清无吗v一区| 国产精品沙发午睡系列990531| 国产主播一区二区| 久久久夜色精品亚洲| 国产乱子伦视频一区二区三区| 欧美白人最猛性xxxxx69交| 亚洲欧洲综合另类在线| 欧美日韩情趣电影| 亚洲视频香蕉人妖| av色综合久久天堂av综合| 国产欧美一区二区三区鸳鸯浴| 日本欧美大码aⅴ在线播放| 欧美日韩五月天| 视频在线观看91| 69堂精品视频| 麻豆精品视频在线观看免费| 欧美一级在线免费| 日韩综合在线视频| 精品美女在线观看| 国产精品一区久久久久| 国产精品久久久久影院亚瑟| 91视频一区二区| 日韩精品欧美精品| 久久综合丝袜日本网| 不卡一区二区中文字幕| 亚洲色欲色欲www在线观看| 91成人在线免费观看| 成熟亚洲日本毛茸茸凸凹| 亚洲123区在线观看| 欧美日韩情趣电影| 丁香天五香天堂综合| 日本欧美一区二区三区乱码| 欧美精品一区视频| 成人18视频日本| 五月综合激情婷婷六月色窝| 日韩欧美精品在线| 国产寡妇亲子伦一区二区| 亚洲欧美电影院| 88在线观看91蜜桃国自产| 国内不卡的二区三区中文字幕| 欧美国产一区视频在线观看| 在线中文字幕一区| 久久国产婷婷国产香蕉| 国产精品久久久久7777按摩| 欧美一区二区视频免费观看| 懂色av一区二区三区蜜臀| 亚洲资源中文字幕| 精品一区二区三区免费播放| 日本成人在线看| 国产亚洲欧美日韩在线一区| 99精品久久久久久| 经典三级视频一区| 亚洲综合成人在线| 国产亚洲一区二区三区四区 | 成年人午夜久久久| 美腿丝袜亚洲一区| 亚洲国产日韩一级| 国产精品拍天天在线| 欧美电影免费提供在线观看| 欧美综合在线视频| 成人黄色软件下载| 国产精品自拍在线| 久久机这里只有精品| 亚洲无人区一区| 亚洲另类一区二区| 亚洲色图在线播放| 国产成人免费9x9x人网站视频| 亚洲另类在线一区| 国产精品亲子伦对白| 欧美精品一区二区在线观看| 日韩欧美一二三四区| 制服丝袜av成人在线看| 欧洲一区在线观看| 91麻豆国产香蕉久久精品| 波多野结衣欧美| eeuss鲁片一区二区三区在线观看| 激情深爱一区二区| 国产在线一区二区综合免费视频| 韩国精品在线观看| 青青草精品视频| 奇米综合一区二区三区精品视频| 亚洲一区二区高清| 午夜精品成人在线视频| 日日夜夜精品视频天天综合网| 亚洲国产裸拍裸体视频在线观看乱了| 日韩理论片网站| 亚洲午夜电影在线观看| 亚洲欧洲成人精品av97| 久久久99精品免费观看不卡| 久久免费视频一区| 久久久久久久精| 国产自产高清不卡| 国产乱码精品一区二区三 | 日韩av在线播放中文字幕| 日本美女视频一区二区| 亚洲乱码一区二区三区在线观看| 亚洲欧洲精品成人久久奇米网| 日韩美女视频一区二区 | 欧美国产乱子伦| 亚洲人123区| 日韩精品欧美精品| 国产毛片精品视频| 99精品久久久久久| 91精品啪在线观看国产60岁| 久久综合999| 亚洲丝袜美腿综合| 看片网站欧美日韩| 成人亚洲精品久久久久软件| 日本韩国欧美在线| 欧美精品久久天天躁| 久久综合久久综合久久| 亚洲人成亚洲人成在线观看图片 | 91国产丝袜在线播放| 欧美美女网站色| 久久免费午夜影院| 亚洲影院免费观看| 另类小说综合欧美亚洲| 99精品视频在线观看免费| 欧美一区二区免费| 国产精品久久久久久久浪潮网站| 日韩二区三区四区| 99国产精品久久久久久久久久久| 7878成人国产在线观看| 国产精品国产三级国产a| 日本不卡高清视频| 色av综合在线| 国产精品私人影院| 久久国内精品自在自线400部| 日本道精品一区二区三区|