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

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

?? editor.js

?? 美麗心雨 飛狐源碼站 優化修正了50%以上的代碼
?? JS
?? 第 1 頁 / 共 4 頁
字號:
  // split up button name into "editorID" and "cmdID"
  var BtnParts = Array();
  BtnParts = button_id.split("_");
  var objname    = button_id.replace(/^_(.*)_[^_]*$/, '$1');
  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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米精品一区二区三区在线观看一| 久久久久久免费| 91美女视频网站| aaa国产一区| av在线综合网| 日本精品免费观看高清观看| 99久久综合精品| 91在线国产观看| 色综合久久久久综合| 91麻豆国产在线观看| 91色在线porny| 欧美在线一区二区| 91麻豆精品国产91久久久久久久久 | 久久蜜桃一区二区| 久久久噜噜噜久久中文字幕色伊伊| 精品国产一二三| 欧美激情在线看| 亚洲色图在线视频| 婷婷丁香激情综合| 久久国产精品99久久人人澡| 高清国产一区二区| 91丨porny丨国产| 欧美一区二区三区不卡| 久久九九影视网| 亚洲美女区一区| 日本女人一区二区三区| 国产福利91精品| 在线精品视频免费播放| 欧美v国产在线一区二区三区| 国产网站一区二区三区| 亚洲国产综合人成综合网站| 男女性色大片免费观看一区二区| 丁香婷婷综合激情五月色| 91丨九色丨蝌蚪富婆spa| 欧美欧美欧美欧美| 国产夜色精品一区二区av| 亚洲午夜在线视频| 国产成人免费视频网站| 欧美剧情片在线观看| 国产精品亲子伦对白| 偷窥国产亚洲免费视频 | 中文字幕免费一区| 亚洲一区二三区| 国产二区国产一区在线观看| 欧美理论片在线| 亚洲人午夜精品天堂一二香蕉| 美女视频免费一区| 日本黄色一区二区| 国产精品人人做人人爽人人添 | 国产欧美视频一区二区| 亚洲国产裸拍裸体视频在线观看乱了| 国产精一区二区三区| 欧美一区二区视频免费观看| 一区二区三区在线免费播放| 国产精品一二三四区| 日韩一区二区三区四区五区六区| 亚洲三级小视频| 粉嫩一区二区三区性色av| 欧美不卡在线视频| 日本女优在线视频一区二区| 欧美午夜理伦三级在线观看| 亚洲欧美日韩国产成人精品影院| 成人免费视频一区二区| 久久久久久毛片| 国产激情视频一区二区三区欧美| 欧美草草影院在线视频| 日本午夜一本久久久综合| 欧美做爰猛烈大尺度电影无法无天| 国产精品天美传媒| 福利电影一区二区| 国产无遮挡一区二区三区毛片日本| 另类调教123区| 日韩免费福利电影在线观看| 日韩av中文在线观看| 在线不卡的av| 美女视频第一区二区三区免费观看网站| 在线观看免费一区| 一区二区高清在线| 在线观看91精品国产入口| 亚洲电影一级黄| 欧美一级在线视频| 韩国一区二区视频| 国产欧美日韩三区| aa级大片欧美| 亚洲成av人综合在线观看| 欧美日韩小视频| 老司机精品视频线观看86| 日韩无一区二区| 国产精品影视在线观看| 成人免费在线视频| 欧美自拍偷拍一区| 日本不卡在线视频| 久久久久久久久99精品| av网站一区二区三区| 亚洲国产视频一区| 欧美一区二区三区日韩视频| 国产精品自产自拍| 亚洲美女视频在线观看| 666欧美在线视频| 国产凹凸在线观看一区二区| 亚洲免费伊人电影| 欧美电视剧在线观看完整版| 成人aaaa免费全部观看| 视频一区二区国产| 国产午夜亚洲精品羞羞网站| 色综合一区二区三区| 麻豆极品一区二区三区| 欧美韩国日本不卡| 欧美精品自拍偷拍| 成人一区二区三区在线观看| 亚洲成人午夜电影| 国产精品久久久久久久第一福利| 欧美精品日日鲁夜夜添| 国产成人精品免费| 丝袜美腿亚洲综合| 国产精品久久久久久亚洲毛片 | 日韩一区二区三区视频| 国产精品亚洲视频| 性久久久久久久| 国产精品久久久一本精品| 欧美一区二区久久久| 成人免费不卡视频| 麻豆精品在线观看| 亚洲成a人v欧美综合天堂 | 欧美日韩成人一区二区| 国产成人精品aa毛片| 麻豆成人免费电影| 亚洲国产精品久久一线不卡| 国产精品天天摸av网| 久久亚洲精华国产精华液| 91精品国产色综合久久不卡蜜臀| 色综合久久66| 99精品久久久久久| 成人久久18免费网站麻豆| 国产主播一区二区| 免费在线看一区| 午夜欧美一区二区三区在线播放| 中文字幕日韩一区| 国产精品伦一区| 中文字幕乱码一区二区免费| 久久精品综合网| 欧美精品一区二区在线播放 | 99久久久免费精品国产一区二区 | 一本大道综合伊人精品热热| 成人动漫在线一区| 国产69精品一区二区亚洲孕妇| 激情深爱一区二区| 国模少妇一区二区三区| 另类小说综合欧美亚洲| 美国十次了思思久久精品导航| 日韩成人一区二区| 蜜桃精品视频在线观看| 黑人精品欧美一区二区蜜桃| 国产在线日韩欧美| 国产精品影视网| av网站一区二区三区| 色欧美乱欧美15图片| 在线免费观看日本一区| 欧美日韩一区二区三区四区| 欧美日韩在线播放三区| 欧美精品日日鲁夜夜添| 日韩欧美国产三级| 欧美精品一区二区蜜臀亚洲| 国产亚洲美州欧州综合国| 国产精品久久毛片| 一区二区日韩av| 免费成人在线网站| 国产一区欧美二区| 99精品1区2区| 欧美亚洲一区三区| 日韩一区二区三区免费看| 精品999在线播放| 亚洲视频你懂的| 天堂蜜桃91精品| 国产一区二区三区久久久| 不卡在线观看av| 在线成人小视频| 国产精品视频在线看| 亚洲黄色在线视频| 日本不卡一二三| 成人手机电影网| 欧美日韩成人综合在线一区二区| 欧美精品一区二区久久婷婷| 椎名由奈av一区二区三区| 午夜国产不卡在线观看视频| 国产精品亚洲午夜一区二区三区 | 成人av先锋影音| 欧美日韩成人综合天天影院| 久久午夜国产精品| 一区二区三区av电影 | 欧美亚洲丝袜传媒另类| 欧美成人官网二区| 一区二区三区免费观看| 国产一区久久久| 69堂成人精品免费视频| 亚洲日本韩国一区| 国产麻豆视频一区二区| 欧美日韩国产影片| 亚洲日本在线天堂| 国产一区二区免费在线|