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

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

?? editor.js

?? 功能相當強大
?? JS
?? 第 1 頁 / 共 4 頁
字號:
  var cmdID      = BtnParts[ BtnParts.length-1 ];
  var button_obj = document.all[button_id];
  var editor_obj = document.all["_" +objname + "_editor"];
  var config     = document.all[objname].config;

  // help popup
  if (cmdID == 'showhelp') {
    window.open(_editor_url + "popups/editor_help.html", 'EditorHelp');
    return;
  }

  // popup editor
  if (cmdID == 'popupeditor') {
    window.open(_editor_url + "popups/fullscreen.html?"+objname,
                'FullScreen',
                'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=640,height=480');
    return;
  }

  // check editor mode (don't perform actions in textedit mode)
  if (editor_obj.tagName.toLowerCase() == 'textarea') { return; }

  var editdoc = editor_obj.contentWindow.document;
  editor_focus(editor_obj);

  // get index and value for pulldowns
  var idx = button_obj.selectedIndex;
  var val = (idx != null) ? button_obj[ idx ].value : null;

  if (0) {}   // use else if for easy cutting and pasting

  //
  // CUSTOM BUTTONS START HERE
  //

  // Custom1
  else if (cmdID == 'custom1') {
    alert("Hello, I am custom button 1!");
  }

  // Custom2
  else if (cmdID == 'custom2') {  // insert some text from a popup window
    var myTitle = "This is a custom title";
    var myText = showModalDialog(_editor_url + "popups/custom2.html",
                                 myTitle,      // str or obj specified here can be read from dialog as "window.dialogArguments"
                                 "resizable: yes; help: no; status: no; scroll: no; ");
    if (myText) { editor_insertHTML(objname, myText); }
  }

  // Custom3
  else if (cmdID == 'custom3') {  // insert some text
    editor_insertHTML(objname, "It's easy to add buttons that insert text!");
  }

  //
  // END OF CUSTOM BUTTONS
  //

  // FontName
  else if (cmdID == 'FontName' && val) {
    editdoc.execCommand(cmdID,0,val);
  }

  // FontSize
  else if (cmdID == 'FontSize' && val) {
    editdoc.execCommand(cmdID,0,val);
  }

  // FontStyle (change CSS className)
  else if (cmdID == 'FontStyle' && val) {
    editdoc.execCommand('RemoveFormat');
    editdoc.execCommand('FontName',0,'636c6173734e616d6520706c616365686f6c646572');
    var fontArray = editdoc.all.tags("FONT");
    for (i=0; i<fontArray.length; i++) {
      if (fontArray[i].face == '636c6173734e616d6520706c616365686f6c646572') {
        fontArray[i].face = "";
        fontArray[i].className = val;
        fontArray[i].outerHTML = fontArray[i].outerHTML.replace(/face=['"]+/, "");
        }
    }
    button_obj.selectedIndex =0;
  }

  // fgColor and bgColor
  else if (cmdID == 'ForeColor' || cmdID == 'BackColor') {
    var oldcolor = _dec_to_rgb(editdoc.queryCommandValue(cmdID));
    var newcolor = showModalDialog(_editor_url + "popups/select_color.html", oldcolor, "resizable: no; help: no; status: no; scroll: no;");
    if (newcolor != null) { editdoc.execCommand(cmdID, false, "#"+newcolor); }
  }

  // execute command for buttons - if we didn't catch the cmdID by here we'll assume it's a
  // commandID and pass it to execCommand().   See http://msdn.microsoft.com/workshop/author/dhtml/reference/commandids.asp
  else {
    // subscript & superscript, disable one before enabling the other
    if (cmdID.toLowerCase() == 'subscript' && editdoc.queryCommandState('superscript')) { editdoc.execCommand('superscript'); }
    if (cmdID.toLowerCase() == 'superscript' && editdoc.queryCommandState('subscript')) { editdoc.execCommand('subscript'); }

    // insert link
    if (cmdID.toLowerCase() == 'createlink'){
      editdoc.execCommand(cmdID,1);
    }

    // insert image
    else if (cmdID.toLowerCase() == 'insertimage'){
      showModalDialog(_editor_url + "popups/insert_image.html", editdoc, "resizable: no; help: no; status: no; scroll: no; ");
    }

    // insert table
    else if (cmdID.toLowerCase() == 'inserttable'){
      showModalDialog(_editor_url + "popups/insert_table.html?"+objname,
                                 window,
                                 "resizable: yes; help: no; status: no; scroll: no; ");
    }

    // all other commands microsoft Command Identifiers
    else { editdoc.execCommand(cmdID); }
  }

  editor_event(objname);
}

/* ---------------------------------------------------------------------- *\
  Function    : editor_event
  Description : called everytime an editor event occurs
  Usage       : editor_event(objname, runDelay, eventName)
  Arguments   : objname - ID of textarea to replace
                runDelay: -1 = run now, no matter what
                          0  = run now, if allowed
                        1000 = run in 1 sec, if allowed at that point
\* ---------------------------------------------------------------------- */

function editor_event(objname,runDelay) {
  var config = document.all[objname].config;
  var editor_obj  = document.all["_" +objname+  "_editor"];       // html editor object
  if (runDelay == null) { runDelay = 0; }
  var editdoc;
  var editEvent = editor_obj.contentWindow ? editor_obj.contentWindow.event : event;

  // catch keypress events
    if (editEvent && editEvent.keyCode) {
      var ord       = editEvent.keyCode;    // ascii order of key pressed
      var ctrlKey   = editEvent.ctrlKey;
      var altKey    = editEvent.altKey;
      var shiftKey  = editEvent.shiftKey;

      if (ord == 16) { return; }  // ignore shift key by itself
      if (ord == 17) { return; }  // ignore ctrl key by itself
      if (ord == 18) { return; }  // ignore alt key by itself


       // cancel ENTER key and insert <BR> instead
//       if (ord == 13 && editEvent.type == 'keypress') {
//         editEvent.returnValue = false;
//         editor_insertHTML(objname, "<br>");
//         return;
//       }

      if (ctrlKey && (ord == 122 || ord == 90)) {     // catch ctrl-z (UNDO)
//      TODO: Add our own undo/redo functionality
//        editEvent.cancelBubble = true;
        return;
      }
      if ((ctrlKey && (ord == 121 || ord == 89)) ||
          ctrlKey && shiftKey && (ord == 122 || ord == 90)) {     // catch ctrl-y, ctrl-shift-z (REDO)
//      TODO: Add our own undo/redo functionality
        return;
      }
    }

  // setup timer for delayed updates (some events take time to complete)
  if (runDelay > 0) { return setTimeout(function(){ editor_event(objname); }, runDelay); }

  // don't execute more than 3 times a second (eg: too soon after last execution)
  if (this.tooSoon == 1 && runDelay >= 0) { this.queue = 1; return; } // queue all but urgent events
  this.tooSoon = 1;
  setTimeout(function(){
    this.tooSoon = 0;
    if (this.queue) { editor_event(objname,-1); };
    this.queue = 0;
    }, 333);  // 1/3 second


  editor_updateOutput(objname);
  editor_updateToolbar(objname);

}

/* ---------------------------------------------------------------------- *\
  Function    : editor_updateToolbar
  Description : update toolbar state
  Usage       :
  Arguments   : objname - ID of textarea to replace
                action  - enable, disable, or update (default action)
\* ---------------------------------------------------------------------- */

function editor_updateToolbar(objname,action) {
  var config = document.all[objname].config;
  var editor_obj  = document.all["_" +objname+  "_editor"];

  // disable or enable toolbar

  if (action == "enable" || action == "disable") {
    var tbItems = new Array('FontName','FontSize','FontStyle');                           // add pulldowns
    for (var btnName in config.btnList) { tbItems.push(config.btnList[btnName][0]); } // add buttons

    for (var idxN in tbItems) {
      var cmdID = tbItems[idxN].toLowerCase();
      var tbObj = document.all["_" +objname+ "_" +tbItems[idxN]];
      if (cmdID == "htmlmode" || cmdID == "about" || cmdID == "showhelp" || cmdID == "popupeditor") { continue; } // don't change these buttons
      if (tbObj == null) { continue; }
      var isBtn = (tbObj.tagName.toLowerCase() == "button") ? true : false;

      if (action == "enable")  { tbObj.disabled = false; if (isBtn) { tbObj.className = 'btn' }}
      if (action == "disable") { tbObj.disabled = true;  if (isBtn) { tbObj.className = 'btnNA' }}
    }
    return;
  }

  // update toolbar state

  if (editor_obj.tagName.toLowerCase() == 'textarea') { return; }   // don't update state in textedit mode
  var editdoc = editor_obj.contentWindow.document;

  // Set FontName pulldown
  var fontname_obj = document.all["_" +objname+ "_FontName"];
  if (fontname_obj) {
    var fontname = editdoc.queryCommandValue('FontName');
    if (fontname == null) { fontname_obj.value = null; }
    else {
      var found = 0;
      for (i=0; i<fontname_obj.length; i++) {
        if (fontname.toLowerCase() == fontname_obj[i].text.toLowerCase()) {
          fontname_obj.selectedIndex = i;
          found = 1;
        }
      }
      if (found != 1) { fontname_obj.value = null; }     // for fonts not in list
    }
  }

  // Set FontSize pulldown
  var fontsize_obj = document.all["_" +objname+ "_FontSize"];
  if (fontsize_obj) {
    var fontsize = editdoc.queryCommandValue('FontSize');
    if (fontsize == null) { fontsize_obj.value = null; }
    else {
      var found = 0;
      for (i=0; i<fontsize_obj.length; i++) {
        if (fontsize == fontsize_obj[i].value) { fontsize_obj.selectedIndex = i; found=1; }
      }
      if (found != 1) { fontsize_obj.value = null; }     // for sizes not in list
    }
  }

  // Set FontStyle pulldown
  var classname_obj = document.all["_" +objname+ "_FontStyle"];
  if (classname_obj) {
    var curRange = editdoc.selection.createRange();

    // check element and element parents for class names
    var pElement;
    if (curRange.length) { pElement = curRange[0]; }              // control tange
    else                 { pElement = curRange.parentElement(); } // text range
    while (pElement && !pElement.className) { pElement = pElement.parentElement; }  // keep going up

    var thisClass = pElement ? pElement.className.toLowerCase() : "";
    if (!thisClass && classname_obj.value) { classname_obj.value = null; }
    else {
      var found = 0;
      for (i=0; i<classname_obj.length; i++) {
        if (thisClass == classname_obj[i].value.toLowerCase()) {
          classname_obj.selectedIndex = i;
          found=1;
        }
      }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利在线播放| 岛国一区二区三区| 久久久久久久久久久黄色| 91亚洲大成网污www| 调教+趴+乳夹+国产+精品| 国产婷婷精品av在线| 欧美日韩一区二区欧美激情| 国产成人免费高清| 亚洲欧美日韩国产一区二区三区 | 亚洲另类在线视频| 26uuu精品一区二区在线观看| 欧美私人免费视频| av电影在线观看完整版一区二区| 久久国产欧美日韩精品| 亚洲第一二三四区| 亚洲愉拍自拍另类高清精品| 国产精品―色哟哟| 欧美国产一区二区| 久久亚洲精华国产精华液 | 成人激情av网| 国产一区二区三区免费观看| 日韩电影免费一区| 亚洲成a人v欧美综合天堂下载| 国产欧美精品一区二区色综合朱莉| 欧美日韩国产一区二区三区地区| 成人免费视频caoporn| 麻豆久久久久久| 亚洲成人动漫av| 亚洲欧美日韩一区二区三区在线观看| 91精品国产乱码久久蜜臀| 色呦呦国产精品| 国产精品77777| 黄色资源网久久资源365| 亚洲bdsm女犯bdsm网站| 亚洲天堂久久久久久久| 色av综合在线| 成人黄色小视频在线观看| 国产在线一区二区综合免费视频| 亚洲成年人网站在线观看| 1区2区3区欧美| 国产精品丝袜黑色高跟| 久久蜜臀中文字幕| 欧美一区二区视频在线观看 | 国产一区亚洲一区| 国产精品一二二区| www.欧美色图| 91国内精品野花午夜精品| 欧美日韩国产大片| 欧美一区二区在线免费观看| 精品少妇一区二区三区日产乱码| 精品国产免费久久| 国产精品免费看片| 亚洲精品亚洲人成人网在线播放| 夜夜精品视频一区二区| 日韩激情一二三区| 久久66热偷产精品| 成人高清在线视频| 欧美在线观看一区| 欧美一区二区三区免费| 国产三级一区二区三区| 日韩理论片中文av| 天天综合日日夜夜精品| 久久 天天综合| 国产精品人妖ts系列视频| 久久人人超碰精品| 91精品国产欧美一区二区成人| 欧美电影免费观看高清完整版在线| 久久欧美一区二区| 亚洲丝袜美腿综合| 免费在线观看成人| 成人免费黄色在线| 欧美三区在线观看| 久久天天做天天爱综合色| 亚洲日本丝袜连裤袜办公室| 日日夜夜精品视频天天综合网| 国产尤物一区二区| 欧美天堂亚洲电影院在线播放| 精品免费视频.| 亚洲精品免费在线观看| 麻豆专区一区二区三区四区五区| jiyouzz国产精品久久| 欧美一级黄色录像| 国产精品视频第一区| 天堂精品中文字幕在线| 国产成人精品亚洲午夜麻豆| 亚洲bt欧美bt精品| 日本vs亚洲vs韩国一区三区| 国产成a人亚洲精品| 在线欧美一区二区| 欧美大黄免费观看| 亚洲日本中文字幕区| 精品一区二区在线视频| 欧美性感一类影片在线播放| 国产亚洲综合在线| 三级成人在线视频| 色综合欧美在线| 久久精品一区四区| 一区二区三区不卡视频在线观看 | 中文字幕一区二区三区蜜月| 亚洲成人先锋电影| 91免费观看视频在线| 日韩欧美的一区二区| 亚洲欧美另类综合偷拍| 久久99国产精品免费| 一本到不卡免费一区二区| 欧美电视剧在线看免费| 亚洲另类一区二区| 国产乱妇无码大片在线观看| 欧美在线999| 国产三级三级三级精品8ⅰ区| 北条麻妃一区二区三区| 日本亚洲三级在线| 欧美亚洲综合在线| 国产精品盗摄一区二区三区| 国产最新精品免费| 欧美一区二区福利在线| 亚洲bt欧美bt精品| 欧美性猛交xxxx黑人交| 《视频一区视频二区| 成人一级视频在线观看| wwwwww.欧美系列| 狠狠色综合日日| 欧美大胆人体bbbb| 美女www一区二区| 日韩一区二区三区在线视频| 午夜av区久久| 在线播放91灌醉迷j高跟美女| 亚洲尤物视频在线| 欧美日韩中文一区| 亚洲国产成人av网| 欧美精品一二三| 免费久久99精品国产| 91精品国产全国免费观看 | www.亚洲在线| 国产精品久久久久影院色老大| 国产suv精品一区二区883| 欧美激情一区二区三区四区 | 精品卡一卡二卡三卡四在线| 麻豆精品久久精品色综合| 欧美va天堂va视频va在线| 精品一区二区久久久| 久久在线观看免费| 成人丝袜视频网| 亚洲婷婷在线视频| 欧美三级电影网| 日韩一区精品视频| 久久综合五月天婷婷伊人| 国产成人精品免费一区二区| 亚洲婷婷综合色高清在线| 欧美三级午夜理伦三级中视频| 婷婷丁香激情综合| 日韩欧美一级精品久久| 国产一区二区久久| 精品粉嫩超白一线天av| 日韩欧美国产一区二区三区| 久久精品国内一区二区三区| 2欧美一区二区三区在线观看视频| 国产乱国产乱300精品| 综合分类小说区另类春色亚洲小说欧美| 成人动漫在线一区| 亚洲一区二区三区中文字幕在线| 日韩一区二区在线免费观看| 国产一区二区在线免费观看| 1024亚洲合集| 欧美一区二区三区人| 国产91丝袜在线播放九色| 一区二区不卡在线播放| 日韩精品最新网址| 成人app网站| 日本欧美大码aⅴ在线播放| 国产欧美一区二区精品秋霞影院| 在线视频综合导航| 国产专区欧美精品| 亚洲与欧洲av电影| 国产色产综合产在线视频| 欧美午夜在线一二页| 国产综合久久久久久鬼色| 亚洲最大成人网4388xx| 久久婷婷色综合| 欧美日韩一区二区在线观看视频| 久久精品国产在热久久| 亚洲欧洲制服丝袜| 久久夜色精品一区| 97se亚洲国产综合自在线不卡| 久久久欧美精品sm网站| 一本大道久久a久久精品综合| 亚洲影视在线观看| 精品久久久久一区| 在线观看视频一区| 国产精品一区免费在线观看| 亚洲国产精品影院| 国产清纯美女被跳蛋高潮一区二区久久w | 不卡视频免费播放| 久久国产精品99久久人人澡| 一区在线观看免费| 久久久精品人体av艺术| 日韩一区二区三区免费看 | 欧美色综合网站| 成年人网站91| 国产一区欧美日韩|