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

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

?? editor.js

?? 這個(gè)寫的就更好了
?? JS
?? 第 1 頁 / 共 4 頁
字號(hào):
  // 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;
          found=1;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本美女一区二区| 国产精品久久看| 精品无人区卡一卡二卡三乱码免费卡| 欧美tk—视频vk| 国产精品一二三四五| 国产精品美女久久久久久2018| 99国产一区二区三精品乱码| 亚洲自拍偷拍图区| 日韩视频一区二区在线观看| 国产一区二区免费视频| 国产精品久久夜| 欧美在线不卡视频| 免费不卡在线观看| 国产日韩三级在线| 欧洲av在线精品| 日本成人超碰在线观看| 久久久亚洲精品石原莉奈| 成人av在线看| 亚洲超碰精品一区二区| 精品国产免费一区二区三区四区| 成人午夜看片网址| 亚洲国产精品人人做人人爽| 日韩免费性生活视频播放| 成人激情开心网| 午夜欧美在线一二页| 久久久三级国产网站| 色偷偷久久人人79超碰人人澡| 日韩欧美国产午夜精品| 国产suv一区二区三区88区| 亚洲永久免费av| 337p日本欧洲亚洲大胆精品| 一本大道av一区二区在线播放| 麻豆视频观看网址久久| 国产蜜臀av在线一区二区三区| 欧美午夜一区二区| 国产精品综合一区二区三区| 亚洲乱码国产乱码精品精可以看 | 久久久91精品国产一区二区精品| 一本一本大道香蕉久在线精品 | 国产v日产∨综合v精品视频| 亚洲国产日韩一级| 久久久久久久国产精品影院| 在线观看网站黄不卡| 国产福利91精品一区| 亚洲国产aⅴ天堂久久| 国产日韩视频一区二区三区| 9191精品国产综合久久久久久 | 91美女在线观看| 国产真实乱对白精彩久久| 亚洲妇女屁股眼交7| av电影天堂一区二区在线| 午夜精品久久久久久久久| 国产精品全国免费观看高清| 日韩丝袜情趣美女图片| 在线精品视频一区二区| 成人综合在线观看| 蜜臀久久久99精品久久久久久| 亚洲欧美激情插| 国产欧美在线观看一区| 91精品国产一区二区人妖| 91视频在线看| 国产精品一区二区男女羞羞无遮挡| 婷婷中文字幕一区三区| 中文字幕五月欧美| 久久蜜桃av一区二区天堂| 欧美精品vⅰdeose4hd| 色综合久久久久网| 成人免费视频视频在线观看免费| 久久福利资源站| 偷拍日韩校园综合在线| 一区二区三区久久久| 中文字幕永久在线不卡| 国产婷婷色一区二区三区| 日韩视频123| 欧美日韩高清一区| 欧美亚洲日本国产| 91在线视频在线| 从欧美一区二区三区| 国内不卡的二区三区中文字幕| 天堂久久一区二区三区| 欧美精品在欧美一区二区少妇| 95精品视频在线| 成人国产精品免费观看视频| 国产九色精品成人porny| 久久99国内精品| 久久se精品一区二区| 日韩电影在线观看一区| 丝袜美腿亚洲色图| 亚洲成人免费视频| 亚洲国产一区视频| 亚洲激情在线激情| 亚洲美女屁股眼交| 亚洲欧美色综合| 亚洲色图制服诱惑| 亚洲人成影院在线观看| 亚洲人一二三区| 亚洲欧洲国产专区| 综合亚洲深深色噜噜狠狠网站| 国产精品欧美极品| 国产精品久久久久久久久久久免费看| 国产亚洲精品免费| 国产蜜臀97一区二区三区 | 中文字幕日韩av资源站| 中文字幕乱码亚洲精品一区| 日本一区二区不卡视频| 国产精品三级电影| 国产精品区一区二区三| 中文字幕亚洲一区二区va在线| 国产精品国产三级国产有无不卡 | 一区二区三区在线观看国产| 亚洲欧美一区二区不卡| 亚洲乱码精品一二三四区日韩在线| 亚洲色图制服诱惑| 亚洲综合一二三区| 亚洲成人激情av| 日韩激情视频在线观看| 蜜桃av噜噜一区| 国产剧情一区二区三区| 成人听书哪个软件好| 91视频精品在这里| 欧美亚洲综合网| 欧美一区二区三区不卡| 精品少妇一区二区三区在线视频| 久久婷婷成人综合色| 国产目拍亚洲精品99久久精品| 中文字幕在线不卡一区| 亚洲一区二区av电影| 青青草国产精品97视觉盛宴| 紧缚捆绑精品一区二区| 国产成人亚洲综合色影视| bt7086福利一区国产| 91传媒视频在线播放| 91精品国产综合久久小美女| 26uuu国产在线精品一区二区| 国产欧美一区二区精品仙草咪| 国产精品进线69影院| 亚洲福利国产精品| 日韩免费性生活视频播放| 日本一区二区三区久久久久久久久不| 日韩毛片在线免费观看| 亚洲成精国产精品女| 美国三级日本三级久久99| 国产激情视频一区二区在线观看| 95精品视频在线| 欧美一区二区久久久| 国产日韩欧美在线一区| 亚洲精品免费视频| 免费的成人av| 菠萝蜜视频在线观看一区| 在线观看成人小视频| 欧美成人官网二区| 国产精品不卡一区二区三区| 午夜精品福利一区二区三区av| 国产伦精品一区二区三区视频青涩| 91论坛在线播放| 日韩欧美国产三级| 亚洲人快播电影网| 久久国产精品免费| 91丨porny丨蝌蚪视频| 7777女厕盗摄久久久| 国产欧美日韩麻豆91| 亚洲成av人影院在线观看网| 国产成人在线视频网站| 精品婷婷伊人一区三区三| 精品剧情v国产在线观看在线| 亚洲人成影院在线观看| 久久99久久久欧美国产| 91国偷自产一区二区三区观看| 欧美精品一区二区三| 亚洲精品乱码久久久久久黑人| 老司机精品视频线观看86| 色综合天天综合给合国产| 激情综合网av| 在线欧美日韩国产| 久久综合色鬼综合色| 亚洲一区二区欧美激情| 成人综合婷婷国产精品久久| 91精品国产一区二区| 亚洲图片你懂的| 狠狠久久亚洲欧美| 欧美色精品在线视频| 国产精品麻豆99久久久久久| 老司机精品视频导航| 欧美伊人精品成人久久综合97| 国产人妖乱国产精品人妖| 天堂一区二区在线免费观看| 91视频xxxx| 久久久激情视频| 蜜桃久久久久久| 欧美在线观看视频在线| 国产精品久久久久影视| 国产麻豆一精品一av一免费| 欧美精品粉嫩高潮一区二区| 亚洲精品日韩专区silk| 丁香啪啪综合成人亚洲小说 | 国产麻豆91精品| 91精品在线麻豆| 亚洲韩国一区二区三区| av电影天堂一区二区在线观看| 2020国产精品|