/* automatically generated by JSCoverage - do not edit */
try {
  if (typeof top === 'object' && top !== null && typeof top.opener === 'object' && top.opener !== null) {
    // this is a browser window that was opened from another window

    if (! top.opener._$jscoverage) {
      top.opener._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null) {
    // this is a browser window

    try {
      if (typeof top.opener === 'object' && top.opener !== null && top.opener._$jscoverage) {
        top._$jscoverage = top.opener._$jscoverage;
      }
    }
    catch (e) {}

    if (! top._$jscoverage) {
      top._$jscoverage = {};
    }
  }
}
catch (e) {}

try {
  if (typeof top === 'object' && top !== null && top._$jscoverage) {
    _$jscoverage = top._$jscoverage;
  }
}
catch (e) {}
if (typeof _$jscoverage !== 'object') {
  _$jscoverage = {};
}
if (! _$jscoverage['core/Editor.js']) {
  _$jscoverage['core/Editor.js'] = [];
  _$jscoverage['core/Editor.js'][22] = 0;
  _$jscoverage['core/Editor.js'][23] = 0;
  _$jscoverage['core/Editor.js'][32] = 0;
  _$jscoverage['core/Editor.js'][33] = 0;
  _$jscoverage['core/Editor.js'][34] = 0;
  _$jscoverage['core/Editor.js'][35] = 0;
  _$jscoverage['core/Editor.js'][36] = 0;
  _$jscoverage['core/Editor.js'][37] = 0;
  _$jscoverage['core/Editor.js'][38] = 0;
  _$jscoverage['core/Editor.js'][39] = 0;
  _$jscoverage['core/Editor.js'][43] = 0;
  _$jscoverage['core/Editor.js'][46] = 0;
  _$jscoverage['core/Editor.js'][47] = 0;
  _$jscoverage['core/Editor.js'][53] = 0;
  _$jscoverage['core/Editor.js'][55] = 0;
  _$jscoverage['core/Editor.js'][66] = 0;
  _$jscoverage['core/Editor.js'][68] = 0;
  _$jscoverage['core/Editor.js'][69] = 0;
  _$jscoverage['core/Editor.js'][71] = 0;
  _$jscoverage['core/Editor.js'][73] = 0;
  _$jscoverage['core/Editor.js'][82] = 0;
  _$jscoverage['core/Editor.js'][83] = 0;
  _$jscoverage['core/Editor.js'][84] = 0;
  _$jscoverage['core/Editor.js'][135] = 0;
  _$jscoverage['core/Editor.js'][136] = 0;
  _$jscoverage['core/Editor.js'][137] = 0;
  _$jscoverage['core/Editor.js'][138] = 0;
  _$jscoverage['core/Editor.js'][139] = 0;
  _$jscoverage['core/Editor.js'][140] = 0;
  _$jscoverage['core/Editor.js'][141] = 0;
  _$jscoverage['core/Editor.js'][142] = 0;
  _$jscoverage['core/Editor.js'][143] = 0;
  _$jscoverage['core/Editor.js'][145] = 0;
  _$jscoverage['core/Editor.js'][171] = 0;
  _$jscoverage['core/Editor.js'][173] = 0;
  _$jscoverage['core/Editor.js'][174] = 0;
  _$jscoverage['core/Editor.js'][176] = 0;
  _$jscoverage['core/Editor.js'][182] = 0;
  _$jscoverage['core/Editor.js'][186] = 0;
  _$jscoverage['core/Editor.js'][188] = 0;
  _$jscoverage['core/Editor.js'][205] = 0;
  _$jscoverage['core/Editor.js'][206] = 0;
  _$jscoverage['core/Editor.js'][207] = 0;
  _$jscoverage['core/Editor.js'][238] = 0;
  _$jscoverage['core/Editor.js'][239] = 0;
  _$jscoverage['core/Editor.js'][240] = 0;
  _$jscoverage['core/Editor.js'][242] = 0;
  _$jscoverage['core/Editor.js'][244] = 0;
  _$jscoverage['core/Editor.js'][258] = 0;
  _$jscoverage['core/Editor.js'][259] = 0;
  _$jscoverage['core/Editor.js'][260] = 0;
  _$jscoverage['core/Editor.js'][261] = 0;
  _$jscoverage['core/Editor.js'][262] = 0;
  _$jscoverage['core/Editor.js'][263] = 0;
  _$jscoverage['core/Editor.js'][264] = 0;
  _$jscoverage['core/Editor.js'][266] = 0;
  _$jscoverage['core/Editor.js'][269] = 0;
  _$jscoverage['core/Editor.js'][270] = 0;
  _$jscoverage['core/Editor.js'][271] = 0;
  _$jscoverage['core/Editor.js'][272] = 0;
  _$jscoverage['core/Editor.js'][273] = 0;
  _$jscoverage['core/Editor.js'][274] = 0;
  _$jscoverage['core/Editor.js'][275] = 0;
  _$jscoverage['core/Editor.js'][277] = 0;
  _$jscoverage['core/Editor.js'][278] = 0;
  _$jscoverage['core/Editor.js'][279] = 0;
  _$jscoverage['core/Editor.js'][282] = 0;
  _$jscoverage['core/Editor.js'][299] = 0;
  _$jscoverage['core/Editor.js'][302] = 0;
  _$jscoverage['core/Editor.js'][304] = 0;
  _$jscoverage['core/Editor.js'][305] = 0;
  _$jscoverage['core/Editor.js'][307] = 0;
  _$jscoverage['core/Editor.js'][308] = 0;
  _$jscoverage['core/Editor.js'][309] = 0;
  _$jscoverage['core/Editor.js'][311] = 0;
  _$jscoverage['core/Editor.js'][313] = 0;
  _$jscoverage['core/Editor.js'][314] = 0;
  _$jscoverage['core/Editor.js'][316] = 0;
  _$jscoverage['core/Editor.js'][319] = 0;
  _$jscoverage['core/Editor.js'][321] = 0;
  _$jscoverage['core/Editor.js'][324] = 0;
  _$jscoverage['core/Editor.js'][326] = 0;
  _$jscoverage['core/Editor.js'][342] = 0;
  _$jscoverage['core/Editor.js'][350] = 0;
  _$jscoverage['core/Editor.js'][352] = 0;
  _$jscoverage['core/Editor.js'][353] = 0;
  _$jscoverage['core/Editor.js'][354] = 0;
  _$jscoverage['core/Editor.js'][355] = 0;
  _$jscoverage['core/Editor.js'][357] = 0;
  _$jscoverage['core/Editor.js'][358] = 0;
  _$jscoverage['core/Editor.js'][359] = 0;
  _$jscoverage['core/Editor.js'][373] = 0;
  _$jscoverage['core/Editor.js'][375] = 0;
  _$jscoverage['core/Editor.js'][376] = 0;
  _$jscoverage['core/Editor.js'][377] = 0;
  _$jscoverage['core/Editor.js'][378] = 0;
  _$jscoverage['core/Editor.js'][380] = 0;
  _$jscoverage['core/Editor.js'][382] = 0;
  _$jscoverage['core/Editor.js'][383] = 0;
  _$jscoverage['core/Editor.js'][384] = 0;
  _$jscoverage['core/Editor.js'][385] = 0;
  _$jscoverage['core/Editor.js'][386] = 0;
  _$jscoverage['core/Editor.js'][388] = 0;
  _$jscoverage['core/Editor.js'][390] = 0;
  _$jscoverage['core/Editor.js'][391] = 0;
  _$jscoverage['core/Editor.js'][392] = 0;
  _$jscoverage['core/Editor.js'][394] = 0;
  _$jscoverage['core/Editor.js'][396] = 0;
  _$jscoverage['core/Editor.js'][397] = 0;
  _$jscoverage['core/Editor.js'][398] = 0;
  _$jscoverage['core/Editor.js'][399] = 0;
  _$jscoverage['core/Editor.js'][400] = 0;
  _$jscoverage['core/Editor.js'][401] = 0;
  _$jscoverage['core/Editor.js'][404] = 0;
  _$jscoverage['core/Editor.js'][405] = 0;
  _$jscoverage['core/Editor.js'][408] = 0;
  _$jscoverage['core/Editor.js'][411] = 0;
  _$jscoverage['core/Editor.js'][412] = 0;
  _$jscoverage['core/Editor.js'][413] = 0;
  _$jscoverage['core/Editor.js'][414] = 0;
  _$jscoverage['core/Editor.js'][415] = 0;
  _$jscoverage['core/Editor.js'][416] = 0;
  _$jscoverage['core/Editor.js'][418] = 0;
  _$jscoverage['core/Editor.js'][420] = 0;
  _$jscoverage['core/Editor.js'][425] = 0;
  _$jscoverage['core/Editor.js'][426] = 0;
  _$jscoverage['core/Editor.js'][429] = 0;
  _$jscoverage['core/Editor.js'][430] = 0;
  _$jscoverage['core/Editor.js'][431] = 0;
  _$jscoverage['core/Editor.js'][433] = 0;
  _$jscoverage['core/Editor.js'][436] = 0;
  _$jscoverage['core/Editor.js'][437] = 0;
  _$jscoverage['core/Editor.js'][439] = 0;
  _$jscoverage['core/Editor.js'][440] = 0;
  _$jscoverage['core/Editor.js'][443] = 0;
  _$jscoverage['core/Editor.js'][444] = 0;
  _$jscoverage['core/Editor.js'][447] = 0;
  _$jscoverage['core/Editor.js'][448] = 0;
  _$jscoverage['core/Editor.js'][451] = 0;
  _$jscoverage['core/Editor.js'][452] = 0;
  _$jscoverage['core/Editor.js'][458] = 0;
  _$jscoverage['core/Editor.js'][459] = 0;
  _$jscoverage['core/Editor.js'][460] = 0;
  _$jscoverage['core/Editor.js'][461] = 0;
  _$jscoverage['core/Editor.js'][462] = 0;
  _$jscoverage['core/Editor.js'][463] = 0;
  _$jscoverage['core/Editor.js'][465] = 0;
  _$jscoverage['core/Editor.js'][466] = 0;
  _$jscoverage['core/Editor.js'][467] = 0;
  _$jscoverage['core/Editor.js'][468] = 0;
  _$jscoverage['core/Editor.js'][469] = 0;
  _$jscoverage['core/Editor.js'][471] = 0;
  _$jscoverage['core/Editor.js'][475] = 0;
  _$jscoverage['core/Editor.js'][476] = 0;
  _$jscoverage['core/Editor.js'][483] = 0;
  _$jscoverage['core/Editor.js'][485] = 0;
  _$jscoverage['core/Editor.js'][486] = 0;
  _$jscoverage['core/Editor.js'][487] = 0;
  _$jscoverage['core/Editor.js'][489] = 0;
  _$jscoverage['core/Editor.js'][490] = 0;
  _$jscoverage['core/Editor.js'][493] = 0;
  _$jscoverage['core/Editor.js'][494] = 0;
  _$jscoverage['core/Editor.js'][515] = 0;
  _$jscoverage['core/Editor.js'][518] = 0;
  _$jscoverage['core/Editor.js'][520] = 0;
  _$jscoverage['core/Editor.js'][533] = 0;
  _$jscoverage['core/Editor.js'][534] = 0;
  _$jscoverage['core/Editor.js'][536] = 0;
  _$jscoverage['core/Editor.js'][538] = 0;
  _$jscoverage['core/Editor.js'][564] = 0;
  _$jscoverage['core/Editor.js'][565] = 0;
  _$jscoverage['core/Editor.js'][566] = 0;
  _$jscoverage['core/Editor.js'][568] = 0;
  _$jscoverage['core/Editor.js'][570] = 0;
  _$jscoverage['core/Editor.js'][579] = 0;
  _$jscoverage['core/Editor.js'][580] = 0;
  _$jscoverage['core/Editor.js'][581] = 0;
  _$jscoverage['core/Editor.js'][582] = 0;
  _$jscoverage['core/Editor.js'][583] = 0;
  _$jscoverage['core/Editor.js'][584] = 0;
  _$jscoverage['core/Editor.js'][585] = 0;
  _$jscoverage['core/Editor.js'][586] = 0;
  _$jscoverage['core/Editor.js'][587] = 0;
  _$jscoverage['core/Editor.js'][588] = 0;
  _$jscoverage['core/Editor.js'][594] = 0;
  _$jscoverage['core/Editor.js'][595] = 0;
  _$jscoverage['core/Editor.js'][596] = 0;
  _$jscoverage['core/Editor.js'][635] = 0;
  _$jscoverage['core/Editor.js'][636] = 0;
  _$jscoverage['core/Editor.js'][637] = 0;
  _$jscoverage['core/Editor.js'][638] = 0;
  _$jscoverage['core/Editor.js'][640] = 0;
  _$jscoverage['core/Editor.js'][641] = 0;
  _$jscoverage['core/Editor.js'][643] = 0;
  _$jscoverage['core/Editor.js'][644] = 0;
  _$jscoverage['core/Editor.js'][645] = 0;
  _$jscoverage['core/Editor.js'][646] = 0;
  _$jscoverage['core/Editor.js'][647] = 0;
  _$jscoverage['core/Editor.js'][660] = 0;
  _$jscoverage['core/Editor.js'][663] = 0;
  _$jscoverage['core/Editor.js'][664] = 0;
  _$jscoverage['core/Editor.js'][665] = 0;
  _$jscoverage['core/Editor.js'][666] = 0;
  _$jscoverage['core/Editor.js'][667] = 0;
  _$jscoverage['core/Editor.js'][669] = 0;
  _$jscoverage['core/Editor.js'][670] = 0;
  _$jscoverage['core/Editor.js'][674] = 0;
  _$jscoverage['core/Editor.js'][689] = 0;
  _$jscoverage['core/Editor.js'][691] = 0;
  _$jscoverage['core/Editor.js'][695] = 0;
  _$jscoverage['core/Editor.js'][698] = 0;
  _$jscoverage['core/Editor.js'][711] = 0;
  _$jscoverage['core/Editor.js'][713] = 0;
  _$jscoverage['core/Editor.js'][755] = 0;
  _$jscoverage['core/Editor.js'][757] = 0;
  _$jscoverage['core/Editor.js'][758] = 0;
  _$jscoverage['core/Editor.js'][759] = 0;
  _$jscoverage['core/Editor.js'][760] = 0;
  _$jscoverage['core/Editor.js'][763] = 0;
  _$jscoverage['core/Editor.js'][766] = 0;
  _$jscoverage['core/Editor.js'][767] = 0;
  _$jscoverage['core/Editor.js'][771] = 0;
  _$jscoverage['core/Editor.js'][773] = 0;
  _$jscoverage['core/Editor.js'][774] = 0;
  _$jscoverage['core/Editor.js'][779] = 0;
  _$jscoverage['core/Editor.js'][782] = 0;
  _$jscoverage['core/Editor.js'][783] = 0;
  _$jscoverage['core/Editor.js'][784] = 0;
  _$jscoverage['core/Editor.js'][785] = 0;
  _$jscoverage['core/Editor.js'][786] = 0;
  _$jscoverage['core/Editor.js'][787] = 0;
  _$jscoverage['core/Editor.js'][789] = 0;
  _$jscoverage['core/Editor.js'][790] = 0;
  _$jscoverage['core/Editor.js'][791] = 0;
  _$jscoverage['core/Editor.js'][792] = 0;
  _$jscoverage['core/Editor.js'][794] = 0;
  _$jscoverage['core/Editor.js'][795] = 0;
  _$jscoverage['core/Editor.js'][798] = 0;
  _$jscoverage['core/Editor.js'][802] = 0;
  _$jscoverage['core/Editor.js'][803] = 0;
  _$jscoverage['core/Editor.js'][805] = 0;
  _$jscoverage['core/Editor.js'][807] = 0;
  _$jscoverage['core/Editor.js'][809] = 0;
  _$jscoverage['core/Editor.js'][810] = 0;
  _$jscoverage['core/Editor.js'][811] = 0;
  _$jscoverage['core/Editor.js'][813] = 0;
  _$jscoverage['core/Editor.js'][814] = 0;
  _$jscoverage['core/Editor.js'][837] = 0;
  _$jscoverage['core/Editor.js'][838] = 0;
  _$jscoverage['core/Editor.js'][840] = 0;
  _$jscoverage['core/Editor.js'][841] = 0;
  _$jscoverage['core/Editor.js'][843] = 0;
  _$jscoverage['core/Editor.js'][845] = 0;
  _$jscoverage['core/Editor.js'][856] = 0;
  _$jscoverage['core/Editor.js'][859] = 0;
  _$jscoverage['core/Editor.js'][860] = 0;
  _$jscoverage['core/Editor.js'][861] = 0;
  _$jscoverage['core/Editor.js'][862] = 0;
  _$jscoverage['core/Editor.js'][864] = 0;
  _$jscoverage['core/Editor.js'][865] = 0;
  _$jscoverage['core/Editor.js'][867] = 0;
  _$jscoverage['core/Editor.js'][868] = 0;
  _$jscoverage['core/Editor.js'][921] = 0;
  _$jscoverage['core/Editor.js'][929] = 0;
  _$jscoverage['core/Editor.js'][936] = 0;
  _$jscoverage['core/Editor.js'][937] = 0;
  _$jscoverage['core/Editor.js'][938] = 0;
  _$jscoverage['core/Editor.js'][939] = 0;
  _$jscoverage['core/Editor.js'][940] = 0;
  _$jscoverage['core/Editor.js'][941] = 0;
  _$jscoverage['core/Editor.js'][942] = 0;
  _$jscoverage['core/Editor.js'][943] = 0;
  _$jscoverage['core/Editor.js'][946] = 0;
  _$jscoverage['core/Editor.js'][947] = 0;
  _$jscoverage['core/Editor.js'][948] = 0;
  _$jscoverage['core/Editor.js'][949] = 0;
  _$jscoverage['core/Editor.js'][953] = 0;
  _$jscoverage['core/Editor.js'][954] = 0;
  _$jscoverage['core/Editor.js'][955] = 0;
  _$jscoverage['core/Editor.js'][956] = 0;
  _$jscoverage['core/Editor.js'][957] = 0;
  _$jscoverage['core/Editor.js'][959] = 0;
  _$jscoverage['core/Editor.js'][962] = 0;
  _$jscoverage['core/Editor.js'][963] = 0;
  _$jscoverage['core/Editor.js'][964] = 0;
  _$jscoverage['core/Editor.js'][965] = 0;
  _$jscoverage['core/Editor.js'][966] = 0;
  _$jscoverage['core/Editor.js'][969] = 0;
  _$jscoverage['core/Editor.js'][970] = 0;
  _$jscoverage['core/Editor.js'][971] = 0;
  _$jscoverage['core/Editor.js'][973] = 0;
  _$jscoverage['core/Editor.js'][974] = 0;
  _$jscoverage['core/Editor.js'][976] = 0;
  _$jscoverage['core/Editor.js'][977] = 0;
  _$jscoverage['core/Editor.js'][978] = 0;
  _$jscoverage['core/Editor.js'][992] = 0;
  _$jscoverage['core/Editor.js'][994] = 0;
  _$jscoverage['core/Editor.js'][995] = 0;
  _$jscoverage['core/Editor.js'][997] = 0;
  _$jscoverage['core/Editor.js'][998] = 0;
  _$jscoverage['core/Editor.js'][999] = 0;
  _$jscoverage['core/Editor.js'][1000] = 0;
  _$jscoverage['core/Editor.js'][1014] = 0;
  _$jscoverage['core/Editor.js'][1015] = 0;
  _$jscoverage['core/Editor.js'][1018] = 0;
  _$jscoverage['core/Editor.js'][1019] = 0;
  _$jscoverage['core/Editor.js'][1021] = 0;
  _$jscoverage['core/Editor.js'][1022] = 0;
  _$jscoverage['core/Editor.js'][1023] = 0;
  _$jscoverage['core/Editor.js'][1024] = 0;
  _$jscoverage['core/Editor.js'][1025] = 0;
  _$jscoverage['core/Editor.js'][1026] = 0;
  _$jscoverage['core/Editor.js'][1027] = 0;
  _$jscoverage['core/Editor.js'][1029] = 0;
  _$jscoverage['core/Editor.js'][1031] = 0;
  _$jscoverage['core/Editor.js'][1032] = 0;
  _$jscoverage['core/Editor.js'][1034] = 0;
  _$jscoverage['core/Editor.js'][1035] = 0;
  _$jscoverage['core/Editor.js'][1051] = 0;
  _$jscoverage['core/Editor.js'][1062] = 0;
  _$jscoverage['core/Editor.js'][1088] = 0;
  _$jscoverage['core/Editor.js'][1089] = 0;
  _$jscoverage['core/Editor.js'][1090] = 0;
  _$jscoverage['core/Editor.js'][1091] = 0;
  _$jscoverage['core/Editor.js'][1095] = 0;
  _$jscoverage['core/Editor.js'][1096] = 0;
  _$jscoverage['core/Editor.js'][1099] = 0;
  _$jscoverage['core/Editor.js'][1100] = 0;
  _$jscoverage['core/Editor.js'][1101] = 0;
  _$jscoverage['core/Editor.js'][1102] = 0;
  _$jscoverage['core/Editor.js'][1103] = 0;
  _$jscoverage['core/Editor.js'][1104] = 0;
  _$jscoverage['core/Editor.js'][1108] = 0;
  _$jscoverage['core/Editor.js'][1121] = 0;
  _$jscoverage['core/Editor.js'][1133] = 0;
  _$jscoverage['core/Editor.js'][1134] = 0;
  _$jscoverage['core/Editor.js'][1135] = 0;
  _$jscoverage['core/Editor.js'][1136] = 0;
  _$jscoverage['core/Editor.js'][1138] = 0;
  _$jscoverage['core/Editor.js'][1139] = 0;
  _$jscoverage['core/Editor.js'][1140] = 0;
  _$jscoverage['core/Editor.js'][1142] = 0;
  _$jscoverage['core/Editor.js'][1144] = 0;
  _$jscoverage['core/Editor.js'][1145] = 0;
  _$jscoverage['core/Editor.js'][1146] = 0;
  _$jscoverage['core/Editor.js'][1147] = 0;
  _$jscoverage['core/Editor.js'][1149] = 0;
  _$jscoverage['core/Editor.js'][1164] = 0;
  _$jscoverage['core/Editor.js'][1191] = 0;
  _$jscoverage['core/Editor.js'][1192] = 0;
  _$jscoverage['core/Editor.js'][1193] = 0;
  _$jscoverage['core/Editor.js'][1194] = 0;
  _$jscoverage['core/Editor.js'][1195] = 0;
  _$jscoverage['core/Editor.js'][1197] = 0;
  _$jscoverage['core/Editor.js'][1198] = 0;
  _$jscoverage['core/Editor.js'][1199] = 0;
  _$jscoverage['core/Editor.js'][1200] = 0;
  _$jscoverage['core/Editor.js'][1201] = 0;
  _$jscoverage['core/Editor.js'][1203] = 0;
  _$jscoverage['core/Editor.js'][1205] = 0;
  _$jscoverage['core/Editor.js'][1236] = 0;
  _$jscoverage['core/Editor.js'][1246] = 0;
  _$jscoverage['core/Editor.js'][1247] = 0;
  _$jscoverage['core/Editor.js'][1248] = 0;
  _$jscoverage['core/Editor.js'][1249] = 0;
  _$jscoverage['core/Editor.js'][1250] = 0;
  _$jscoverage['core/Editor.js'][1251] = 0;
  _$jscoverage['core/Editor.js'][1252] = 0;
  _$jscoverage['core/Editor.js'][1253] = 0;
  _$jscoverage['core/Editor.js'][1258] = 0;
  _$jscoverage['core/Editor.js'][1259] = 0;
  _$jscoverage['core/Editor.js'][1260] = 0;
  _$jscoverage['core/Editor.js'][1262] = 0;
  _$jscoverage['core/Editor.js'][1272] = 0;
  _$jscoverage['core/Editor.js'][1273] = 0;
  _$jscoverage['core/Editor.js'][1275] = 0;
  _$jscoverage['core/Editor.js'][1276] = 0;
  _$jscoverage['core/Editor.js'][1277] = 0;
  _$jscoverage['core/Editor.js'][1279] = 0;
  _$jscoverage['core/Editor.js'][1282] = 0;
  _$jscoverage['core/Editor.js'][1283] = 0;
  _$jscoverage['core/Editor.js'][1285] = 0;
  _$jscoverage['core/Editor.js'][1299] = 0;
  _$jscoverage['core/Editor.js'][1308] = 0;
  _$jscoverage['core/Editor.js'][1309] = 0;
  _$jscoverage['core/Editor.js'][1310] = 0;
  _$jscoverage['core/Editor.js'][1312] = 0;
  _$jscoverage['core/Editor.js'][1325] = 0;
  _$jscoverage['core/Editor.js'][1339] = 0;
  _$jscoverage['core/Editor.js'][1340] = 0;
  _$jscoverage['core/Editor.js'][1341] = 0;
  _$jscoverage['core/Editor.js'][1343] = 0;
  _$jscoverage['core/Editor.js'][1344] = 0;
  _$jscoverage['core/Editor.js'][1345] = 0;
  _$jscoverage['core/Editor.js'][1346] = 0;
  _$jscoverage['core/Editor.js'][1348] = 0;
  _$jscoverage['core/Editor.js'][1385] = 0;
  _$jscoverage['core/Editor.js'][1386] = 0;
  _$jscoverage['core/Editor.js'][1387] = 0;
  _$jscoverage['core/Editor.js'][1388] = 0;
  _$jscoverage['core/Editor.js'][1389] = 0;
  _$jscoverage['core/Editor.js'][1390] = 0;
  _$jscoverage['core/Editor.js'][1393] = 0;
  _$jscoverage['core/Editor.js'][1410] = 0;
  _$jscoverage['core/Editor.js'][1424] = 0;
  _$jscoverage['core/Editor.js'][1425] = 0;
  _$jscoverage['core/Editor.js'][1443] = 0;
  _$jscoverage['core/Editor.js'][1457] = 0;
  _$jscoverage['core/Editor.js'][1458] = 0;
  _$jscoverage['core/Editor.js'][1462] = 0;
}
_$jscoverage['core/Editor.js'].source = ["<span class=\"c\">/**</span>","<span class=\"c\"> * &#32534;&#36753;&#22120;&#20027;&#31867;&#65292;&#21253;&#21547;&#32534;&#36753;&#22120;&#25552;&#20379;&#30340;&#22823;&#37096;&#20998;&#20844;&#29992;&#25509;&#21475;</span>","<span class=\"c\"> * @file</span>","<span class=\"c\"> * @module UE</span>","<span class=\"c\"> * @class Editor</span>","<span class=\"c\"> * @since 1.2.6.1</span>","<span class=\"c\"> */</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * UEditor&#20844;&#29992;&#31354;&#38388;&#65292;UEditor&#25152;&#26377;&#30340;&#21151;&#33021;&#37117;&#25346;&#36733;&#22312;&#35813;&#31354;&#38388;&#19979;</span>","<span class=\"c\"> * @unfile</span>","<span class=\"c\"> * @module UE</span>","<span class=\"c\"> */</span>","","<span class=\"c\">/**</span>","<span class=\"c\"> * UEditor&#30340;&#26680;&#24515;&#31867;&#65292;&#20026;&#29992;&#25143;&#25552;&#20379;&#19982;&#32534;&#36753;&#22120;&#20132;&#20114;&#30340;&#25509;&#21475;&#12290;</span>","<span class=\"c\"> * @unfile</span>","<span class=\"c\"> * @module UE</span>","<span class=\"c\"> * @class Editor</span>","<span class=\"c\"> */</span>","","<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","    <span class=\"k\">var</span> uid <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> _selectionChangeTimer<span class=\"k\">;</span>","","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#33719;&#21462;&#32534;&#36753;&#22120;&#30340;html&#20869;&#23481;&#65292;&#36171;&#20540;&#21040;&#32534;&#36753;&#22120;&#25152;&#22312;&#34920;&#21333;&#30340;textarea&#25991;&#26412;&#22495;&#37324;&#38754;</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     * @method setValue</span>","<span class=\"c\">     * @param { UE.Editor } editor &#32534;&#36753;&#22120;&#20107;&#20363;</span>","<span class=\"c\">     */</span>","    <span class=\"k\">function</span> setValue<span class=\"k\">(</span>form<span class=\"k\">,</span> editor<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> textarea<span class=\"k\">;</span>","        <span class=\"k\">if</span> <span class=\"k\">(</span>editor<span class=\"k\">.</span>textarea<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>utils<span class=\"k\">.</span>isString<span class=\"k\">(</span>editor<span class=\"k\">.</span>textarea<span class=\"k\">))</span> <span class=\"k\">{</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ti<span class=\"k\">,</span> tis <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span>form<span class=\"k\">,</span> <span class=\"s\">'textarea'</span><span class=\"k\">);</span> ti <span class=\"k\">=</span> tis<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>ti<span class=\"k\">.</span>id <span class=\"k\">==</span> <span class=\"s\">'ueditor_textarea_'</span> <span class=\"k\">+</span> editor<span class=\"k\">.</span>options<span class=\"k\">.</span>textarea<span class=\"k\">)</span> <span class=\"k\">{</span>","                        textarea <span class=\"k\">=</span> ti<span class=\"k\">;</span>","                        <span class=\"k\">break</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                textarea <span class=\"k\">=</span> editor<span class=\"k\">.</span>textarea<span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","        <span class=\"k\">if</span> <span class=\"k\">(!</span>textarea<span class=\"k\">)</span> <span class=\"k\">{</span>","            form<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>textarea <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>createElement<span class=\"k\">(</span>document<span class=\"k\">,</span> <span class=\"s\">'textarea'</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                <span class=\"s\">'name'</span><span class=\"k\">:</span> editor<span class=\"k\">.</span>options<span class=\"k\">.</span>textarea<span class=\"k\">,</span>","                <span class=\"s\">'id'</span><span class=\"k\">:</span> <span class=\"s\">'ueditor_textarea_'</span> <span class=\"k\">+</span> editor<span class=\"k\">.</span>options<span class=\"k\">.</span>textarea<span class=\"k\">,</span>","                <span class=\"s\">'style'</span><span class=\"k\">:</span> <span class=\"s\">\"display:none\"</span>","            <span class=\"k\">}</span><span class=\"k\">));</span>","            <span class=\"c\">//&#19981;&#35201;&#20135;&#29983;&#22810;&#20010;textarea</span>","            editor<span class=\"k\">.</span>textarea <span class=\"k\">=</span> textarea<span class=\"k\">;</span>","        <span class=\"k\">}</span>","        textarea<span class=\"k\">.</span>value <span class=\"k\">=</span> editor<span class=\"k\">.</span>hasContents<span class=\"k\">()</span> <span class=\"k\">?</span>","            <span class=\"k\">(</span>editor<span class=\"k\">.</span>options<span class=\"k\">.</span>allHtmlEnabled <span class=\"k\">?</span> editor<span class=\"k\">.</span>getAllHtml<span class=\"k\">()</span> <span class=\"k\">:</span> editor<span class=\"k\">.</span>getContent<span class=\"k\">(</span><span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">))</span> <span class=\"k\">:</span>","            <span class=\"s\">''</span>","    <span class=\"k\">}</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#21021;&#22987;&#21270;&#25554;&#20214;</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     * @method loadPlugins</span>","<span class=\"c\">     * @param { UE.Editor } editor &#32534;&#36753;&#22120;&#20107;&#20363;</span>","<span class=\"c\">     */</span>","    <span class=\"k\">function</span> loadPlugins<span class=\"k\">(</span>me<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"c\">//&#21021;&#22987;&#21270;&#25554;&#20214;</span>","        <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> pi <span class=\"k\">in</span> UE<span class=\"k\">.</span>plugins<span class=\"k\">)</span> <span class=\"k\">{</span>","            UE<span class=\"k\">.</span>plugins<span class=\"k\">[</span>pi<span class=\"k\">].</span>call<span class=\"k\">(</span>me<span class=\"k\">);</span>","        <span class=\"k\">}</span>","        me<span class=\"k\">.</span>langIsReady <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","","        me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">\"langReady\"</span><span class=\"k\">);</span>","    <span class=\"k\">}</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#33719;&#21462;&#35821;&#35328;&#21253;&#37324;&#38754;&#30340;&#31532;&#19968;&#20010;</span>","<span class=\"c\">     * @private</span>","<span class=\"c\">     * @method checkCurLang</span>","<span class=\"c\">     * @param { KeyValueMap } I18N &#32534;&#36753;&#22120;&#20107;&#20363;</span>","<span class=\"c\">     */</span>","    <span class=\"k\">function</span> checkCurLang<span class=\"k\">(</span>I18N<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> lang <span class=\"k\">in</span> I18N<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> lang","        <span class=\"k\">}</span>","    <span class=\"k\">}</span>","","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#32534;&#36753;&#22120;&#20934;&#22791;&#23601;&#32490;&#21518;&#20250;&#35302;&#21457;&#35813;&#20107;&#20214;</span>","<span class=\"c\">     * @module UE</span>","<span class=\"c\">     * @class Editor</span>","<span class=\"c\">     * @event ready</span>","<span class=\"c\">     * @example</span>","<span class=\"c\">     * ```javascript</span>","<span class=\"c\">     * editor.addListener( 'ready', function( editor ) {</span>","<span class=\"c\">     *     editor.execCommand( 'focus' );</span>","<span class=\"c\">     * } );</span>","<span class=\"c\">     * ```</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#27599;&#24403;&#32534;&#36753;&#22120;&#20869;&#37096;&#36873;&#21306;&#21457;&#29983;&#25913;&#21464;&#21518;&#65292; &#23558;&#35302;&#21457;&#35813;&#20107;&#20214;</span>","<span class=\"c\">     * @event selectionchange</span>","<span class=\"c\">     * @warning &#35813;&#20107;&#20214;&#30340;&#35302;&#21457;&#38750;&#24120;&#39057;&#32321;&#65292;&#19981;&#24314;&#35758;&#22312;&#35813;&#20107;&#20214;&#30340;&#22788;&#29702;&#36807;&#31243;&#20013;&#20570;&#37325;&#37327;&#32423;&#30340;&#22788;&#29702;</span>","<span class=\"c\">     * @example</span>","<span class=\"c\">     * ```javascript</span>","<span class=\"c\">     * editor.addListener( 'selectionchange', function( editor ) {</span>","<span class=\"c\">     *     console.log('&#36873;&#21306;&#21457;&#29983;&#25913;&#21464;');</span>","<span class=\"c\">     * }</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#20197;&#40664;&#35748;&#21442;&#25968;&#26500;&#24314;&#19968;&#20010;&#32534;&#36753;&#22120;&#23454;&#20363;</span>","<span class=\"c\">     * @constructor</span>","<span class=\"c\">     * @example</span>","<span class=\"c\">     * ```javascript</span>","<span class=\"c\">     * var editor = new UE.Editor();</span>","<span class=\"c\">     * editor.execCommand('blod');</span>","<span class=\"c\">     * ```</span>","<span class=\"c\">     * @see UE.Config</span>","<span class=\"c\">     */</span>","","    <span class=\"c\">/**</span>","<span class=\"c\">     * &#20197;&#32473;&#23450;&#30340;&#21442;&#25968;&#38598;&#21512;&#21019;&#24314;&#19968;&#20010;&#32534;&#36753;&#22120;&#23545;&#35937;&#65292;&#23545;&#20110;&#26410;&#25351;&#23450;&#30340;&#21442;&#25968;&#65292;&#23558;&#24212;&#29992;&#40664;&#35748;&#21442;&#25968;&#12290;</span>","<span class=\"c\">     * @constructor</span>","<span class=\"c\">     * @param { KeyValueMap } setting &#21019;&#24314;&#32534;&#36753;&#22120;&#30340;&#21442;&#25968;</span>","<span class=\"c\">     * @example</span>","<span class=\"c\">     * ```javascript</span>","<span class=\"c\">     * var editor = new UE.Editor();</span>","<span class=\"c\">     * editor.execCommand('blod');</span>","<span class=\"c\">     * ```</span>","<span class=\"c\">     * @see UE.Config</span>","<span class=\"c\">     */</span>","    <span class=\"k\">var</span> Editor <span class=\"k\">=</span> UE<span class=\"k\">.</span>Editor <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>options<span class=\"k\">)</span> <span class=\"k\">{</span>","        <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","        me<span class=\"k\">.</span>uid <span class=\"k\">=</span> uid<span class=\"k\">++;</span>","        EventBase<span class=\"k\">.</span>call<span class=\"k\">(</span>me<span class=\"k\">);</span>","        me<span class=\"k\">.</span>commands <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","        me<span class=\"k\">.</span>options <span class=\"k\">=</span> utils<span class=\"k\">.</span>extend<span class=\"k\">(</span>utils<span class=\"k\">.</span>clone<span class=\"k\">(</span>options <span class=\"k\">||</span> <span class=\"k\">{}</span><span class=\"k\">),</span> UEDITOR_CONFIG<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","        me<span class=\"k\">.</span>shortcutkeys <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","        me<span class=\"k\">.</span>inputRules <span class=\"k\">=</span> <span class=\"k\">[];</span>","        me<span class=\"k\">.</span>outputRules <span class=\"k\">=</span> <span class=\"k\">[];</span>","        <span class=\"c\">//&#35774;&#32622;&#40664;&#35748;&#30340;&#24120;&#29992;&#23646;&#24615;</span>","        me<span class=\"k\">.</span>setOpt<span class=\"k\">(</span><span class=\"k\">{</span>","            isShow<span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","            initialContent<span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">,</span>","            initialStyle<span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">,</span>","            autoClearinitialContent<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            iframeCssUrl<span class=\"k\">:</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>UEDITOR_HOME_URL <span class=\"k\">+</span> <span class=\"s\">'themes/iframe.css'</span><span class=\"k\">,</span>","            textarea<span class=\"k\">:</span> <span class=\"s\">'editorValue'</span><span class=\"k\">,</span>","            focus<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            focusInEnd<span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","            autoClearEmptyNode<span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","            fullscreen<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            readonly<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            zIndex<span class=\"k\">:</span> <span class=\"s\">999</span><span class=\"k\">,</span>","            imagePopup<span class=\"k\">:</span> <span class=\"k\">true</span><span class=\"k\">,</span>","            enterTag<span class=\"k\">:</span> <span class=\"s\">'p'</span><span class=\"k\">,</span>","            customDomain<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            lang<span class=\"k\">:</span> <span class=\"s\">'zh-cn'</span><span class=\"k\">,</span>","            langPath<span class=\"k\">:</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>UEDITOR_HOME_URL <span class=\"k\">+</span> <span class=\"s\">'lang/'</span><span class=\"k\">,</span>","            theme<span class=\"k\">:</span> <span class=\"s\">'default'</span><span class=\"k\">,</span>","            themePath<span class=\"k\">:</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>UEDITOR_HOME_URL <span class=\"k\">+</span> <span class=\"s\">'themes/'</span><span class=\"k\">,</span>","            allHtmlEnabled<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            scaleEnabled<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            tableNativeEditInFF<span class=\"k\">:</span> <span class=\"k\">false</span><span class=\"k\">,</span>","            autoSyncData<span class=\"k\">:</span> <span class=\"k\">true</span>","        <span class=\"k\">}</span><span class=\"k\">);</span>","","        <span class=\"k\">if</span> <span class=\"k\">(!</span>utils<span class=\"k\">.</span>isEmptyObject<span class=\"k\">(</span>UE<span class=\"k\">.</span>I18N<span class=\"k\">))</span> <span class=\"k\">{</span>","            <span class=\"c\">//&#20462;&#25913;&#40664;&#35748;&#30340;&#35821;&#35328;&#31867;&#22411;</span>","            me<span class=\"k\">.</span>options<span class=\"k\">.</span>lang <span class=\"k\">=</span> checkCurLang<span class=\"k\">(</span>UE<span class=\"k\">.</span>I18N<span class=\"k\">);</span>","            loadPlugins<span class=\"k\">(</span>me<span class=\"k\">)</span>","        <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","            utils<span class=\"k\">.</span>loadFile<span class=\"k\">(</span>document<span class=\"k\">,</span> <span class=\"k\">{</span>","                src<span class=\"k\">:</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>langPath <span class=\"k\">+</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>lang <span class=\"k\">+</span> <span class=\"s\">\"/\"</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>lang <span class=\"k\">+</span> <span class=\"s\">\".js\"</span><span class=\"k\">,</span>","                tag<span class=\"k\">:</span> <span class=\"s\">\"script\"</span><span class=\"k\">,</span>","                type<span class=\"k\">:</span> <span class=\"s\">\"text/javascript\"</span><span class=\"k\">,</span>","                defer<span class=\"k\">:</span> <span class=\"s\">\"defer\"</span>","            <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                loadPlugins<span class=\"k\">(</span>me<span class=\"k\">)</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span>","","        UE<span class=\"k\">.</span>instants<span class=\"k\">[</span><span class=\"s\">'ueditorInstant'</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>uid<span class=\"k\">]</span> <span class=\"k\">=</span> me<span class=\"k\">;</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","    Editor<span class=\"k\">.</span>prototype <span class=\"k\">=</span> <span class=\"k\">{</span>","","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#32534;&#36753;&#22120;&#23545;&#22806;&#25552;&#20379;&#30340;&#30417;&#21548;ready&#20107;&#20214;&#30340;&#25509;&#21475;&#65292; &#36890;&#36807;&#35843;&#29992;&#35813;&#26041;&#27861;&#65292;&#36798;&#21040;&#30340;&#25928;&#26524;&#19982;&#30417;&#21548;ready&#20107;&#20214;&#26159;&#19968;&#33268;&#30340;</span>","<span class=\"c\">         * @method ready</span>","<span class=\"c\">         * @param { Function } fn &#32534;&#36753;&#22120;ready&#20043;&#21518;&#25152;&#25191;&#34892;&#30340;&#22238;&#35843;, &#22914;&#26524;&#22312;&#27880;&#20876;&#20107;&#20214;&#20043;&#21069;&#32534;&#36753;&#22120;&#24050;&#32463;ready&#65292;&#23558;&#20250;</span>","<span class=\"c\">         * &#31435;&#21363;&#35302;&#21457;&#35813;&#22238;&#35843;&#12290;</span>","<span class=\"c\">         * @see UE.Editor.event:ready</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.ready( function( editor ) {</span>","<span class=\"c\">         *     editor.setContent('&#21021;&#22987;&#21270;&#23436;&#27605;');</span>","<span class=\"c\">         * } );</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        ready<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>fn<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>fn<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>isReady <span class=\"k\">?</span> fn<span class=\"k\">.</span>apply<span class=\"k\">(</span>me<span class=\"k\">)</span> <span class=\"k\">:</span> me<span class=\"k\">.</span>addListener<span class=\"k\">(</span><span class=\"s\">'ready'</span><span class=\"k\">,</span> fn<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35813;&#26041;&#27861;&#26159;&#25552;&#20379;&#32473;&#25554;&#20214;&#37324;&#38754;&#20351;&#29992;&#65292;&#20197;key&#65292;value&#30340;&#26041;&#24335;&#35774;&#32622;&#25554;&#20214;&#20869;&#29992;&#21040;&#30340;&#37197;&#32622;&#39033;&#40664;&#35748;&#20540;</span>","<span class=\"c\">         * @method setOpt</span>","<span class=\"c\">         * @warning &#22312;config&#25991;&#20214;&#37324;&#38754;&#26377;&#23450;&#20041;&#21442;&#25968;key&#25110;&#32773;&#29992;&#25143;&#23454;&#20363;&#21270;&#30340;&#26102;&#20505;&#26377;&#20256;&#20837;&#21442;&#25968;key&#65292;&#35813;&#26041;&#27861;&#35774;&#32622;&#30340;key&#21442;&#25968;&#20540;&#26080;&#25928;</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#20165;&#20379;&#32534;&#36753;&#22120;&#25554;&#20214;&#20869;&#37096;&#21644;&#32534;&#36753;&#22120;&#21021;&#22987;&#21270;&#26102;&#35843;&#29992;&#65292;&#20854;&#20182;&#22320;&#26041;&#19981;&#33021;&#35843;&#29992;&#12290;</span>","<span class=\"c\">         * @param { String } key &#32534;&#36753;&#22120;&#30340;&#21487;&#25509;&#21463;&#30340;&#36873;&#39033;&#21517;&#31216;</span>","<span class=\"c\">         * @param { * } val  &#35813;&#36873;&#39033;&#21487;&#25509;&#21463;&#30340;&#20540;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setOpt( 'initContent', '&#27426;&#36814;&#20351;&#29992;&#32534;&#36753;&#22120;' );</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35813;&#26041;&#27861;&#26159;&#25552;&#20379;&#32473;&#25554;&#20214;&#37324;&#38754;&#20351;&#29992;&#65292;&#20197;{key:value}&#38598;&#21512;&#30340;&#26041;&#24335;&#35774;&#32622;&#25554;&#20214;&#20869;&#29992;&#21040;&#30340;&#37197;&#32622;&#39033;&#40664;&#35748;&#20540;</span>","<span class=\"c\">         * @method setOpt</span>","<span class=\"c\">         * @warning &#22312;config&#25991;&#20214;&#37324;&#38754;&#26377;&#23450;&#20041;&#21442;&#25968;key&#25110;&#32773;&#29992;&#25143;&#23454;&#20363;&#21270;&#30340;&#26102;&#20505;&#26377;&#20256;&#20837;&#21442;&#25968;key&#65292;&#35813;&#26041;&#27861;&#35774;&#32622;&#30340;key&#21442;&#25968;&#20540;&#26080;&#25928;</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#20165;&#20379;&#32534;&#36753;&#22120;&#25554;&#20214;&#20869;&#37096;&#21644;&#32534;&#36753;&#22120;&#21021;&#22987;&#21270;&#26102;&#35843;&#29992;&#65292;&#20854;&#20182;&#22320;&#26041;&#19981;&#33021;&#35843;&#29992;&#12290;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setOpt( {</span>","<span class=\"c\">         *     'initContent': '&#27426;&#36814;&#20351;&#29992;&#32534;&#36753;&#22120;'</span>","<span class=\"c\">         * } );</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        setOpt<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>key<span class=\"k\">,</span> val<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> obj <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>utils<span class=\"k\">.</span>isString<span class=\"k\">(</span>key<span class=\"k\">))</span> <span class=\"k\">{</span>","                obj<span class=\"k\">[</span>key<span class=\"k\">]</span> <span class=\"k\">=</span> val","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                obj <span class=\"k\">=</span> key<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            utils<span class=\"k\">.</span>extend<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>options<span class=\"k\">,</span> obj<span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#38144;&#27585;&#32534;&#36753;&#22120;&#23454;&#20363;&#23545;&#35937;</span>","<span class=\"c\">         * @method destroy</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.destroy();</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        destroy<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'destroy'</span><span class=\"k\">);</span>","            <span class=\"k\">var</span> container <span class=\"k\">=</span> me<span class=\"k\">.</span>container<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","            <span class=\"k\">var</span> textarea <span class=\"k\">=</span> me<span class=\"k\">.</span>textarea<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>textarea<span class=\"k\">)</span> <span class=\"k\">{</span>","                textarea <span class=\"k\">=</span> document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">'textarea'</span><span class=\"k\">);</span>","                container<span class=\"k\">.</span>parentNode<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>textarea<span class=\"k\">,</span> container<span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                textarea<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">''</span>","            <span class=\"k\">}</span>","","            textarea<span class=\"k\">.</span>style<span class=\"k\">.</span>width <span class=\"k\">=</span> me<span class=\"k\">.</span>iframe<span class=\"k\">.</span>offsetWidth <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","            textarea<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> me<span class=\"k\">.</span>iframe<span class=\"k\">.</span>offsetHeight <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","            textarea<span class=\"k\">.</span>value <span class=\"k\">=</span> me<span class=\"k\">.</span>getContent<span class=\"k\">();</span>","            textarea<span class=\"k\">.</span>id <span class=\"k\">=</span> me<span class=\"k\">.</span>key<span class=\"k\">;</span>","            container<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            domUtils<span class=\"k\">.</span>remove<span class=\"k\">(</span>container<span class=\"k\">);</span>","            <span class=\"k\">var</span> key <span class=\"k\">=</span> me<span class=\"k\">.</span>key<span class=\"k\">;</span>","            <span class=\"c\">//trace:2004</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> p <span class=\"k\">in</span> me<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>hasOwnProperty<span class=\"k\">(</span>p<span class=\"k\">))</span> <span class=\"k\">{</span>","                    <span class=\"k\">delete</span> <span class=\"k\">this</span><span class=\"k\">[</span>p<span class=\"k\">];</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            UE<span class=\"k\">.</span>delEditor<span class=\"k\">(</span>key<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#28210;&#26579;&#32534;&#36753;&#22120;&#30340;DOM&#21040;&#25351;&#23450;&#23481;&#22120;</span>","<span class=\"c\">         * @method render</span>","<span class=\"c\">         * @param { String } containerId &#25351;&#23450;&#19968;&#20010;&#23481;&#22120;ID</span>","<span class=\"c\">         * @warning &#24517;&#39035;&#19988;&#21482;&#33021;&#35843;&#29992;&#19968;&#27425;</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#28210;&#26579;&#32534;&#36753;&#22120;&#30340;DOM&#21040;&#25351;&#23450;&#23481;&#22120;</span>","<span class=\"c\">         * @method render</span>","<span class=\"c\">         * @param { Element } containerDom &#30452;&#25509;&#25351;&#23450;&#23481;&#22120;&#23545;&#35937;</span>","<span class=\"c\">         * @warning &#24517;&#39035;&#19988;&#21482;&#33021;&#35843;&#29992;&#19968;&#27425;</span>","<span class=\"c\">         */</span>","        render<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>container<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                options <span class=\"k\">=</span> me<span class=\"k\">.</span>options<span class=\"k\">,</span>","                getStyleValue <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>attr<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> parseInt<span class=\"k\">(</span>domUtils<span class=\"k\">.</span>getComputedStyle<span class=\"k\">(</span>container<span class=\"k\">,</span> attr<span class=\"k\">));</span>","                <span class=\"k\">}</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>utils<span class=\"k\">.</span>isString<span class=\"k\">(</span>container<span class=\"k\">))</span> <span class=\"k\">{</span>","                container <span class=\"k\">=</span> document<span class=\"k\">.</span>getElementById<span class=\"k\">(</span>container<span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>container<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameWidth<span class=\"k\">)</span> <span class=\"k\">{</span>","                    options<span class=\"k\">.</span>minFrameWidth <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameWidth","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    options<span class=\"k\">.</span>minFrameWidth <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameWidth <span class=\"k\">=</span> container<span class=\"k\">.</span>offsetWidth<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameHeight<span class=\"k\">)</span> <span class=\"k\">{</span>","                    options<span class=\"k\">.</span>minFrameHeight <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameHeight","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    options<span class=\"k\">.</span>initialFrameHeight <span class=\"k\">=</span> options<span class=\"k\">.</span>minFrameHeight <span class=\"k\">=</span> container<span class=\"k\">.</span>offsetHeight<span class=\"k\">;</span>","                <span class=\"k\">}</span>","","                container<span class=\"k\">.</span>style<span class=\"k\">.</span>width <span class=\"k\">=</span> <span class=\"s\">/%$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameWidth<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">'100%'</span> <span class=\"k\">:</span> options<span class=\"k\">.</span>initialFrameWidth <span class=\"k\">-</span>","                    getStyleValue<span class=\"k\">(</span><span class=\"s\">\"padding-left\"</span><span class=\"k\">)</span> <span class=\"k\">-</span> getStyleValue<span class=\"k\">(</span><span class=\"s\">\"padding-right\"</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","                container<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> <span class=\"s\">/%$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameHeight<span class=\"k\">)</span> <span class=\"k\">?</span> <span class=\"s\">'100%'</span> <span class=\"k\">:</span> options<span class=\"k\">.</span>initialFrameHeight <span class=\"k\">-</span>","                    getStyleValue<span class=\"k\">(</span><span class=\"s\">\"padding-top\"</span><span class=\"k\">)</span> <span class=\"k\">-</span> getStyleValue<span class=\"k\">(</span><span class=\"s\">\"padding-bottom\"</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","","                container<span class=\"k\">.</span>style<span class=\"k\">.</span>zIndex <span class=\"k\">=</span> options<span class=\"k\">.</span>zIndex<span class=\"k\">;</span>","","                <span class=\"k\">var</span> html <span class=\"k\">=</span> <span class=\"k\">(</span> ie <span class=\"k\">&amp;&amp;</span> browser<span class=\"k\">.</span>version <span class=\"k\">&lt;</span> <span class=\"s\">9</span> <span class=\"k\">?</span> <span class=\"s\">''</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;!DOCTYPE html&gt;'</span><span class=\"k\">)</span> <span class=\"k\">+</span>","                    <span class=\"s\">'&lt;html xmlns=</span><span class=\"t\">\\'</span><span class=\"s\">http://www.w3.org/1999/xhtml</span><span class=\"t\">\\'</span><span class=\"s\"> class=</span><span class=\"t\">\\'</span><span class=\"s\">view</span><span class=\"t\">\\'</span><span class=\"s\"> &gt;&lt;head&gt;'</span> <span class=\"k\">+</span>","                    <span class=\"s\">'&lt;style type=</span><span class=\"t\">\\'</span><span class=\"s\">text/css</span><span class=\"t\">\\'</span><span class=\"s\">&gt;'</span> <span class=\"k\">+</span>","                    <span class=\"c\">//&#35774;&#32622;&#22235;&#21608;&#30340;&#30041;&#36793;</span>","                    <span class=\"s\">'.view{padding:0;word-wrap:break-word;cursor:text;height:90%;}</span><span class=\"t\">\\n</span><span class=\"s\">'</span> <span class=\"k\">+</span>","                    <span class=\"c\">//&#35774;&#32622;&#40664;&#35748;&#23383;&#20307;&#21644;&#23383;&#21495;</span>","                    <span class=\"c\">//font-family&#19981;&#33021;&#21602;&#38543;&#20415;&#25913;&#65292;&#22312;safari&#19979;fillchar&#20250;&#26377;&#35299;&#26512;&#38382;&#39064;</span>","                    <span class=\"s\">'body{margin:8px;font-family:sans-serif;font-size:16px;}'</span> <span class=\"k\">+</span>","                    <span class=\"c\">//&#35774;&#32622;&#27573;&#33853;&#38388;&#36317;</span>","                    <span class=\"s\">'p{margin:5px 0;}&lt;/style&gt;'</span> <span class=\"k\">+</span>","                    <span class=\"k\">(</span> options<span class=\"k\">.</span>iframeCssUrl <span class=\"k\">?</span> <span class=\"s\">'&lt;link rel=</span><span class=\"t\">\\'</span><span class=\"s\">stylesheet</span><span class=\"t\">\\'</span><span class=\"s\"> type=</span><span class=\"t\">\\'</span><span class=\"s\">text/css</span><span class=\"t\">\\'</span><span class=\"s\"> href=</span><span class=\"t\">\\'</span><span class=\"s\">'</span> <span class=\"k\">+</span> utils<span class=\"k\">.</span>unhtml<span class=\"k\">(</span>options<span class=\"k\">.</span>iframeCssUrl<span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'</span><span class=\"t\">\\'</span><span class=\"s\">/&gt;'</span> <span class=\"k\">:</span> <span class=\"s\">''</span> <span class=\"k\">)</span> <span class=\"k\">+</span>","                    <span class=\"k\">(</span>options<span class=\"k\">.</span>initialStyle <span class=\"k\">?</span> <span class=\"s\">'&lt;style&gt;'</span> <span class=\"k\">+</span> options<span class=\"k\">.</span>initialStyle <span class=\"k\">+</span> <span class=\"s\">'&lt;/style&gt;'</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">+</span>","                    <span class=\"s\">'&lt;/head&gt;&lt;body class=</span><span class=\"t\">\\'</span><span class=\"s\">view</span><span class=\"t\">\\'</span><span class=\"s\"> &gt;&lt;/body&gt;'</span> <span class=\"k\">+</span>","                    <span class=\"s\">'&lt;script type=</span><span class=\"t\">\\'</span><span class=\"s\">text/javascript</span><span class=\"t\">\\'</span><span class=\"s\"> '</span> <span class=\"k\">+</span> <span class=\"k\">(</span>ie <span class=\"k\">?</span> <span class=\"s\">'defer=</span><span class=\"t\">\\'</span><span class=\"s\">defer</span><span class=\"t\">\\'</span><span class=\"s\">'</span> <span class=\"k\">:</span> <span class=\"s\">''</span> <span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">' id=</span><span class=\"t\">\\'</span><span class=\"s\">_initialScript</span><span class=\"t\">\\'</span><span class=\"s\">&gt;'</span> <span class=\"k\">+</span>","                    <span class=\"s\">'setTimeout(function(){window.parent.UE.instants[</span><span class=\"t\">\\'</span><span class=\"s\">ueditorInstant'</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>uid <span class=\"k\">+</span> <span class=\"s\">'</span><span class=\"t\">\\'</span><span class=\"s\">]._setup(document);},0);'</span> <span class=\"k\">+</span>","                    <span class=\"s\">'var _tmpScript = document.getElementById(</span><span class=\"t\">\\'</span><span class=\"s\">_initialScript</span><span class=\"t\">\\'</span><span class=\"s\">);_tmpScript.parentNode.removeChild(_tmpScript);&lt;/script&gt;&lt;/html&gt;'</span><span class=\"k\">;</span>","                container<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>domUtils<span class=\"k\">.</span>createElement<span class=\"k\">(</span>document<span class=\"k\">,</span> <span class=\"s\">'iframe'</span><span class=\"k\">,</span> <span class=\"k\">{</span>","                    id<span class=\"k\">:</span> <span class=\"s\">'ueditor_'</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>uid<span class=\"k\">,</span>","                    width<span class=\"k\">:</span> <span class=\"s\">\"100%\"</span><span class=\"k\">,</span>","                    height<span class=\"k\">:</span> <span class=\"s\">\"100%\"</span><span class=\"k\">,</span>","                    frameborder<span class=\"k\">:</span> <span class=\"s\">\"0\"</span><span class=\"k\">,</span>","                    src<span class=\"k\">:</span> <span class=\"s\">'javascript:void(function(){document.open();'</span> <span class=\"k\">+</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>customDomain <span class=\"k\">&amp;&amp;</span> document<span class=\"k\">.</span>domain <span class=\"k\">!=</span> location<span class=\"k\">.</span>hostname <span class=\"k\">?</span> <span class=\"s\">'document.domain=\"'</span> <span class=\"k\">+</span> document<span class=\"k\">.</span>domain <span class=\"k\">+</span> <span class=\"s\">'\";'</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">+</span>","                        <span class=\"s\">'document.write(\"'</span> <span class=\"k\">+</span> html <span class=\"k\">+</span> <span class=\"s\">'\");document.close();}())'</span>","                <span class=\"k\">}</span><span class=\"k\">));</span>","                container<span class=\"k\">.</span>style<span class=\"k\">.</span>overflow <span class=\"k\">=</span> <span class=\"s\">'hidden'</span><span class=\"k\">;</span>","                <span class=\"c\">//&#35299;&#20915;&#22914;&#26524;&#26159;&#32473;&#23450;&#30340;&#30334;&#20998;&#27604;&#65292;&#20250;&#23548;&#33268;&#39640;&#24230;&#31639;&#19981;&#23545;&#30340;&#38382;&#39064;</span>","                setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"s\">/%$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameWidth<span class=\"k\">))</span> <span class=\"k\">{</span>","                        options<span class=\"k\">.</span>minFrameWidth <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameWidth <span class=\"k\">=</span> container<span class=\"k\">.</span>offsetWidth<span class=\"k\">;</span>","                        container<span class=\"k\">.</span>style<span class=\"k\">.</span>width <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameWidth <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"s\">/%$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>options<span class=\"k\">.</span>initialFrameHeight<span class=\"k\">))</span> <span class=\"k\">{</span>","                        options<span class=\"k\">.</span>minFrameHeight <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameHeight <span class=\"k\">=</span> container<span class=\"k\">.</span>offsetHeight<span class=\"k\">;</span>","                        container<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> options<span class=\"k\">.</span>initialFrameHeight <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span><span class=\"k\">)</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#32534;&#36753;&#22120;&#21021;&#22987;&#21270;</span>","<span class=\"c\">         * @method _setup</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         * @param { Element } doc &#32534;&#36753;&#22120;Iframe&#20013;&#30340;&#25991;&#26723;&#23545;&#35937;</span>","<span class=\"c\">         */</span>","        _setup<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>doc<span class=\"k\">)</span> <span class=\"k\">{</span>","","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                options <span class=\"k\">=</span> me<span class=\"k\">.</span>options<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>ie<span class=\"k\">)</span> <span class=\"k\">{</span>","                doc<span class=\"k\">.</span>body<span class=\"k\">.</span>disabled <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                doc<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                doc<span class=\"k\">.</span>body<span class=\"k\">.</span>disabled <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                doc<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            doc<span class=\"k\">.</span>body<span class=\"k\">.</span>spellcheck <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            me<span class=\"k\">.</span>document <span class=\"k\">=</span> doc<span class=\"k\">;</span>","            me<span class=\"k\">.</span>window <span class=\"k\">=</span> doc<span class=\"k\">.</span>defaultView <span class=\"k\">||</span> doc<span class=\"k\">.</span>parentWindow<span class=\"k\">;</span>","            me<span class=\"k\">.</span>iframe <span class=\"k\">=</span> me<span class=\"k\">.</span>window<span class=\"k\">.</span>frameElement<span class=\"k\">;</span>","            me<span class=\"k\">.</span>body <span class=\"k\">=</span> doc<span class=\"k\">.</span>body<span class=\"k\">;</span>","","            me<span class=\"k\">.</span>selection <span class=\"k\">=</span> <span class=\"k\">new</span> dom<span class=\"k\">.</span>Selection<span class=\"k\">(</span>doc<span class=\"k\">);</span>","            <span class=\"c\">//gecko&#21021;&#22987;&#21270;&#23601;&#33021;&#24471;&#21040;range,&#26080;&#27861;&#21028;&#26029;isFocus&#20102;</span>","            <span class=\"k\">var</span> geckoSel<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>gecko <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>geckoSel <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">()))</span> <span class=\"k\">{</span>","                geckoSel<span class=\"k\">.</span>removeAllRanges<span class=\"k\">();</span>","            <span class=\"k\">}</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>_initEvents<span class=\"k\">();</span>","            <span class=\"c\">//&#20026;form&#25552;&#20132;&#25552;&#20379;&#19968;&#20010;&#38544;&#34255;&#30340;textarea</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> form <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>iframe<span class=\"k\">.</span>parentNode<span class=\"k\">;</span> <span class=\"k\">!</span>domUtils<span class=\"k\">.</span>isBody<span class=\"k\">(</span>form<span class=\"k\">);</span> form <span class=\"k\">=</span> form<span class=\"k\">.</span>parentNode<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>form<span class=\"k\">.</span>tagName <span class=\"k\">==</span> <span class=\"s\">'FORM'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>form <span class=\"k\">=</span> form<span class=\"k\">;</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>autoSyncData<span class=\"k\">)</span> <span class=\"k\">{</span>","                        domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>me<span class=\"k\">.</span>window<span class=\"k\">,</span> <span class=\"s\">'blur'</span><span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                            setValue<span class=\"k\">(</span>form<span class=\"k\">,</span> me<span class=\"k\">);</span>","                        <span class=\"k\">}</span><span class=\"k\">);</span>","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                        domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>form<span class=\"k\">,</span> <span class=\"s\">'submit'</span><span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                            setValue<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span> me<span class=\"k\">);</span>","                        <span class=\"k\">}</span><span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                    <span class=\"k\">break</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>initialContent<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>autoClearinitialContent<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> oldExecCommand <span class=\"k\">=</span> me<span class=\"k\">.</span>execCommand<span class=\"k\">;</span>","                    me<span class=\"k\">.</span>execCommand <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                        me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'firstBeforeExecCommand'</span><span class=\"k\">);</span>","                        <span class=\"k\">return</span> oldExecCommand<span class=\"k\">.</span>apply<span class=\"k\">(</span>me<span class=\"k\">,</span> arguments<span class=\"k\">);</span>","                    <span class=\"k\">}</span><span class=\"k\">;</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>_setDefaultContent<span class=\"k\">(</span>options<span class=\"k\">.</span>initialContent<span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>setContent<span class=\"k\">(</span>options<span class=\"k\">.</span>initialContent<span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"c\">//&#32534;&#36753;&#22120;&#19981;&#33021;&#20026;&#31354;&#20869;&#23481;</span>","","            <span class=\"k\">if</span> <span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isEmptyNode<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">))</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">'&lt;p&gt;'</span> <span class=\"k\">+</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>ie <span class=\"k\">?</span> <span class=\"s\">''</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;br/&gt;'</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&lt;/p&gt;'</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"c\">//&#22914;&#26524;&#35201;&#27714;focus, &#23601;&#25226;&#20809;&#26631;&#23450;&#20301;&#21040;&#20869;&#23481;&#24320;&#22987;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>focus<span class=\"k\">)</span> <span class=\"k\">{</span>","                setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>focus<span class=\"k\">(</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>focusInEnd<span class=\"k\">);</span>","                    <span class=\"c\">//&#22914;&#26524;&#33258;&#21160;&#28165;&#38500;&#24320;&#30528;&#65292;&#23601;&#19981;&#38656;&#35201;&#20570;selectionchange;</span>","                    <span class=\"k\">!</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>autoClearinitialContent <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>_selectionChange<span class=\"k\">();</span>","                <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"s\">0</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>me<span class=\"k\">.</span>container<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>container <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>iframe<span class=\"k\">.</span>parentNode<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>options<span class=\"k\">.</span>fullscreen <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>ui<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>ui<span class=\"k\">.</span>setFullScreen<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">try</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>document<span class=\"k\">.</span>execCommand<span class=\"k\">(</span><span class=\"s\">'2D-position'</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","            <span class=\"k\">try</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>document<span class=\"k\">.</span>execCommand<span class=\"k\">(</span><span class=\"s\">'enableInlineTableEditing'</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","            <span class=\"k\">try</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>document<span class=\"k\">.</span>execCommand<span class=\"k\">(</span><span class=\"s\">'enableObjectResizing'</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","<span class=\"c\">//                domUtils.on(me.body,browser.ie ? 'resizestart' : 'resize', function( evt ) {</span>","<span class=\"c\">//                    domUtils.preventDefault(evt)</span>","<span class=\"c\">//                });</span>","            <span class=\"k\">}</span>","            me<span class=\"k\">.</span>_bindshortcutKeys<span class=\"k\">();</span>","            me<span class=\"k\">.</span>isReady <span class=\"k\">=</span> <span class=\"s\">1</span><span class=\"k\">;</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'ready'</span><span class=\"k\">);</span>","            options<span class=\"k\">.</span>onready <span class=\"k\">&amp;&amp;</span> options<span class=\"k\">.</span>onready<span class=\"k\">.</span>call<span class=\"k\">(</span>me<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>browser<span class=\"k\">.</span>ie<span class=\"k\">)</span> <span class=\"k\">{</span>","                domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>me<span class=\"k\">.</span>window<span class=\"k\">,</span> <span class=\"k\">[</span><span class=\"s\">'blur'</span><span class=\"k\">,</span> <span class=\"s\">'focus'</span><span class=\"k\">],</span> <span class=\"k\">function</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"c\">//chrome&#19979;&#20250;&#20986;&#29616;alt+tab&#20999;&#25442;&#26102;&#65292;&#23548;&#33268;&#36873;&#21306;&#20301;&#32622;&#19981;&#23545;</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>e<span class=\"k\">.</span>type <span class=\"k\">==</span> <span class=\"s\">'blur'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                        me<span class=\"k\">.</span>_bakRange <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","                        <span class=\"k\">try</span> <span class=\"k\">{</span>","                            me<span class=\"k\">.</span>_bakNativeRange <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">().</span>getRangeAt<span class=\"k\">(</span><span class=\"s\">0</span><span class=\"k\">);</span>","                            me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">().</span>removeAllRanges<span class=\"k\">();</span>","                        <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","                            me<span class=\"k\">.</span>_bakNativeRange <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","                        <span class=\"k\">}</span>","","                    <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                        <span class=\"k\">try</span> <span class=\"k\">{</span>","                            me<span class=\"k\">.</span>_bakRange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>_bakRange<span class=\"k\">.</span>select<span class=\"k\">();</span>","                        <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            <span class=\"c\">//trace:1518 ff3.6body&#19981;&#22815;&#23515;&#65292;&#20250;&#23548;&#33268;&#28857;&#20987;&#31354;&#30333;&#22788;&#26080;&#27861;&#33719;&#24471;&#28966;&#28857;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>gecko <span class=\"k\">&amp;&amp;</span> browser<span class=\"k\">.</span>version <span class=\"k\">&lt;=</span> <span class=\"s\">10902</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">//&#20462;&#22797;ff3.6&#21021;&#22987;&#21270;&#36827;&#26469;&#65292;&#19981;&#33021;&#28857;&#20987;&#33719;&#24471;&#28966;&#28857;</span>","                me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","                setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"s\">100</span><span class=\"k\">);</span>","                setInterval<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>body<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> me<span class=\"k\">.</span>iframe<span class=\"k\">.</span>offsetHeight <span class=\"k\">-</span> <span class=\"s\">20</span> <span class=\"k\">+</span> <span class=\"s\">'px'</span>","                <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"s\">100</span><span class=\"k\">)</span>","            <span class=\"k\">}</span>","            <span class=\"k\">!</span>options<span class=\"k\">.</span>isShow <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>setHide<span class=\"k\">();</span>","            options<span class=\"k\">.</span>readonly <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>setDisabled<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#20174;&#32534;&#36753;&#22120;&#30340;&#23481;&#22120;&#33410;&#28857;&#21521;&#19978;&#26597;&#25214;form&#20803;&#32032;&#65292;&#33509;&#25214;&#21040;&#65292;&#23601;&#21516;&#27493;&#32534;&#36753;&#20869;&#23481;&#21040;&#25214;&#21040;&#30340;form&#37324;&#65292;&#20026;&#25552;&#20132;&#25968;&#25454;&#20570;&#20934;&#22791;&#65292;&#20027;&#35201;&#29992;&#20110;&#26159;&#25163;&#21160;&#25552;&#20132;&#30340;&#24773;&#20917;</span>","<span class=\"c\">         * &#21518;&#21488;&#21462;&#24471;&#25968;&#25454;&#30340;&#38190;&#20540;&#65292;&#20351;&#29992;&#20320;&#23481;&#22120;&#19978;&#30340;name&#23646;&#24615;&#65292;&#22914;&#26524;&#27809;&#26377;&#23601;&#20351;&#29992;&#21442;&#25968;&#37324;&#30340;textarea&#39033;</span>","<span class=\"c\">         * @method sync</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.sync();</span>","<span class=\"c\">         * form.sumbit(); //form&#21464;&#37327;&#24050;&#32463;&#25351;&#21521;&#20102;form&#20803;&#32032;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#20256;&#20837;&#30340;formId&#65292;&#22312;&#39029;&#38754;&#19978;&#26597;&#25214;&#35201;&#21516;&#27493;&#25968;&#25454;&#30340;&#34920;&#21333;&#65292;&#33509;&#25214;&#21040;&#65292;&#23601;&#21516;&#27493;&#32534;&#36753;&#20869;&#23481;&#21040;&#25214;&#21040;&#30340;form&#37324;&#65292;&#20026;&#25552;&#20132;&#25968;&#25454;&#20570;&#20934;&#22791;&#65292;&#20027;&#35201;&#29992;&#20110;&#26159;&#25163;&#21160;&#25552;&#20132;&#30340;&#24773;&#20917;</span>","<span class=\"c\">         * &#21518;&#21488;&#21462;&#24471;&#25968;&#25454;&#30340;&#38190;&#20540;&#65292;&#20351;&#29992;&#20320;&#23481;&#22120;&#19978;&#30340;name&#23646;&#24615;&#65292;&#22914;&#26524;&#27809;&#26377;&#23601;&#20351;&#29992;&#21442;&#25968;&#37324;&#30340;textarea&#39033;</span>","<span class=\"c\">         * @method sync</span>","<span class=\"c\">         * @param { String } formID &#25351;&#23450;&#19968;&#20010;&#35201;&#21516;&#27493;&#25968;&#25454;&#30340;form&#30340;id,&#32534;&#36753;&#22120;&#30340;&#25968;&#25454;&#20250;&#21516;&#27493;&#21040;&#20320;&#25351;&#23450;form&#19979;</span>","<span class=\"c\">         */</span>","        sync<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>formId<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                form <span class=\"k\">=</span> formId <span class=\"k\">?</span> document<span class=\"k\">.</span>getElementById<span class=\"k\">(</span>formId<span class=\"k\">)</span> <span class=\"k\">:</span>","                    domUtils<span class=\"k\">.</span>findParent<span class=\"k\">(</span>me<span class=\"k\">.</span>iframe<span class=\"k\">.</span>parentNode<span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">return</span> node<span class=\"k\">.</span>tagName <span class=\"k\">==</span> <span class=\"s\">'FORM'</span>","                    <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","            form <span class=\"k\">&amp;&amp;</span> setValue<span class=\"k\">(</span>form<span class=\"k\">,</span> me<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#32534;&#36753;&#22120;&#39640;&#24230;</span>","<span class=\"c\">         * @method setHeight</span>","<span class=\"c\">         * @param { Number } number &#35774;&#32622;&#30340;&#39640;&#24230;&#20540;&#65292;&#32431;&#25968;&#20540;&#65292;&#19981;&#24102;&#21333;&#20301;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setHeight(number);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        setHeight<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>height<span class=\"k\">,</span> notSetHeight<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>height <span class=\"k\">!==</span> parseInt<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>iframe<span class=\"k\">.</span>parentNode<span class=\"k\">.</span>style<span class=\"k\">.</span>height<span class=\"k\">))</span> <span class=\"k\">{</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>iframe<span class=\"k\">.</span>parentNode<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> height <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">!</span>notSetHeight <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>options<span class=\"k\">.</span>minFrameHeight <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>options<span class=\"k\">.</span>initialFrameHeight <span class=\"k\">=</span> height<span class=\"k\">);</span>","","            <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>style<span class=\"k\">.</span>height <span class=\"k\">=</span> height <span class=\"k\">+</span> <span class=\"s\">'px'</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#36825;&#20010;&#25509;&#21475;&#26159;&#20026;&#25554;&#20214;&#25193;&#23637;&#25552;&#20379;&#30340;&#25509;&#21475;,&#20027;&#35201;&#26159;&#20026;&#26032;&#28155;&#21152;&#30340;&#25554;&#20214;&#65292;&#22914;&#26524;&#38656;&#35201;&#28155;&#21152;&#24555;&#25463;&#38190;&#65292;&#25152;&#25552;&#20379;&#30340;&#25509;&#21475;</span>","<span class=\"c\">         * @method addshortcutkey</span>","<span class=\"c\">         * @param { KeyValueMap } keyset &#21629;&#20196;&#21644;&#24555;&#25463;&#38190;&#30340;&#38190;&#20540;&#23545;&#23545;&#35937;&#65292;&#22810;&#20010;&#25353;&#38062;&#30340;&#24555;&#25463;&#38190;&#29992;&#8220;&#65291;&#8221;&#20998;&#38548;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.addshortcutkey({</span>","<span class=\"c\">         *     \"Bold\" : \"ctrl+66\",//^B</span>","<span class=\"c\">         *     \"Italic\" : \"ctrl+73\", //^I</span>","<span class=\"c\">         * });</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#36825;&#20010;&#25509;&#21475;&#26159;&#20026;&#25554;&#20214;&#25193;&#23637;&#25552;&#20379;&#30340;&#25509;&#21475;,&#20027;&#35201;&#26159;&#20026;&#26032;&#28155;&#21152;&#30340;&#25554;&#20214;&#65292;&#22914;&#26524;&#38656;&#35201;&#28155;&#21152;&#24555;&#25463;&#38190;&#65292;&#25152;&#25552;&#20379;&#30340;&#25509;&#21475;</span>","<span class=\"c\">         * @method addshortcutkey</span>","<span class=\"c\">         * @param { String } cmd &#35302;&#21457;&#24555;&#25463;&#38190;&#26102;&#65292;&#21709;&#24212;&#30340;&#21629;&#20196;</span>","<span class=\"c\">         * @param { String } keys &#24555;&#25463;&#38190;&#30340;&#23383;&#31526;&#20018;&#65292;&#22810;&#20010;&#25353;&#38062;&#29992;&#8220;&#65291;&#8221;&#20998;&#38548;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.addshortcutkey(\"Underline\", \"ctrl+85\"); //^U</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        addshortcutkey<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cmd<span class=\"k\">,</span> keys<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> obj <span class=\"k\">=</span> <span class=\"k\">{}</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>keys<span class=\"k\">)</span> <span class=\"k\">{</span>","                obj<span class=\"k\">[</span>cmd<span class=\"k\">]</span> <span class=\"k\">=</span> keys","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                obj <span class=\"k\">=</span> cmd<span class=\"k\">;</span>","            <span class=\"k\">}</span>","            utils<span class=\"k\">.</span>extend<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>shortcutkeys<span class=\"k\">,</span> obj<span class=\"k\">)</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#23545;&#32534;&#36753;&#22120;&#35774;&#32622;keydown&#20107;&#20214;&#30417;&#21548;&#65292;&#32465;&#23450;&#24555;&#25463;&#38190;&#21644;&#21629;&#20196;&#65292;&#24403;&#24555;&#25463;&#38190;&#32452;&#21512;&#35302;&#21457;&#25104;&#21151;&#65292;&#20250;&#21709;&#24212;&#23545;&#24212;&#30340;&#21629;&#20196;</span>","<span class=\"c\">         * @method _bindshortcutKeys</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         */</span>","        _bindshortcutKeys<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span> shortcutkeys <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>shortcutkeys<span class=\"k\">;</span>","            me<span class=\"k\">.</span>addListener<span class=\"k\">(</span><span class=\"s\">'keydown'</span><span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">(</span>type<span class=\"k\">,</span> e<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> keyCode <span class=\"k\">=</span> e<span class=\"k\">.</span>keyCode <span class=\"k\">||</span> e<span class=\"k\">.</span>which<span class=\"k\">;</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">in</span> shortcutkeys<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> tmp <span class=\"k\">=</span> shortcutkeys<span class=\"k\">[</span>i<span class=\"k\">].</span>split<span class=\"k\">(</span><span class=\"s\">','</span><span class=\"k\">);</span>","                    <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> t <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ti<span class=\"k\">;</span> ti <span class=\"k\">=</span> tmp<span class=\"k\">[</span>t<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                        ti <span class=\"k\">=</span> ti<span class=\"k\">.</span>split<span class=\"k\">(</span><span class=\"s\">':'</span><span class=\"k\">);</span>","                        <span class=\"k\">var</span> key <span class=\"k\">=</span> ti<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">],</span> param <span class=\"k\">=</span> ti<span class=\"k\">[</span><span class=\"s\">1</span><span class=\"k\">];</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"s\">/^(ctrl)(\\+shift)?\\+(\\d+)$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>key<span class=\"k\">.</span>toLowerCase<span class=\"k\">())</span> <span class=\"k\">||</span> <span class=\"s\">/^(\\d+)$/</span><span class=\"k\">.</span>test<span class=\"k\">(</span>key<span class=\"k\">))</span> <span class=\"k\">{</span>","                            <span class=\"k\">if</span> <span class=\"k\">((</span> <span class=\"k\">(</span>RegExp<span class=\"k\">.</span>$1 <span class=\"k\">==</span> <span class=\"s\">'ctrl'</span> <span class=\"k\">?</span> <span class=\"k\">(</span>e<span class=\"k\">.</span>ctrlKey <span class=\"k\">||</span> e<span class=\"k\">.</span>metaKey<span class=\"k\">)</span> <span class=\"k\">:</span> <span class=\"s\">0</span><span class=\"k\">)</span>","                                <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>RegExp<span class=\"k\">.</span>$2 <span class=\"k\">!=</span> <span class=\"s\">\"\"</span> <span class=\"k\">?</span> e<span class=\"k\">[</span>RegExp<span class=\"k\">.</span>$2<span class=\"k\">.</span>slice<span class=\"k\">(</span><span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">\"Key\"</span><span class=\"k\">]</span> <span class=\"k\">:</span> <span class=\"s\">1</span><span class=\"k\">)</span>","                                <span class=\"k\">&amp;&amp;</span> keyCode <span class=\"k\">==</span> RegExp<span class=\"k\">.</span>$3","                                <span class=\"k\">)</span> <span class=\"k\">||</span>","                                keyCode <span class=\"k\">==</span> RegExp<span class=\"k\">.</span>$1","                                <span class=\"k\">)</span> <span class=\"k\">{</span>","                                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>queryCommandState<span class=\"k\">(</span>i<span class=\"k\">,</span> param<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">)</span>","                                    me<span class=\"k\">.</span>execCommand<span class=\"k\">(</span>i<span class=\"k\">,</span> param<span class=\"k\">);</span>","                                domUtils<span class=\"k\">.</span>preventDefault<span class=\"k\">(</span>e<span class=\"k\">);</span>","                            <span class=\"k\">}</span>","                        <span class=\"k\">}</span>","                    <span class=\"k\">}</span>","","                <span class=\"k\">}</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#33719;&#21462;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @method getContent</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#33719;&#21462;&#21040;&#30340;&#26159;&#32463;&#36807;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#36807;&#28388;&#35268;&#21017;&#36827;&#34892;&#36807;&#28388;&#21518;&#24471;&#21040;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @return { String } &#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#23383;&#31526;&#20018;, &#22914;&#26524;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#20026;&#31354;&#65292;&#25110;&#32773;&#26159;&#31354;&#30340;&#26631;&#31614;&#20869;&#23481;&#65288;&#22914;:&#8221;&lt;p&gt;&lt;br/&gt;&lt;/p&gt;&#8220;&#65289;&#65292; &#21017;&#36820;&#22238;&#31354;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * var content = editor.getContent();</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#33719;&#21462;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#12290; &#21487;&#20197;&#36890;&#36807;&#21442;&#25968;&#23450;&#20041;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#21028;&#31354;&#35268;&#21017;</span>","<span class=\"c\">         * @method getContent</span>","<span class=\"c\">         * @param { Function } fn &#33258;&#23450;&#30340;&#21028;&#31354;&#35268;&#21017;&#65292; &#35201;&#27714;&#35813;&#26041;&#27861;&#36820;&#22238;&#19968;&#20010;boolean&#31867;&#22411;&#30340;&#20540;&#65292;</span>","<span class=\"c\">         *                      &#20195;&#34920;&#24403;&#21069;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#26159;&#21542;&#31354;&#65292;</span>","<span class=\"c\">         *                      &#22914;&#26524;&#36820;&#22238;true&#65292; &#21017;&#35813;&#26041;&#27861;&#23558;&#30452;&#25509;&#36820;&#22238;&#31354;&#23383;&#31526;&#20018;&#65307;&#22914;&#26524;&#36820;&#22238;false&#65292;&#21017;&#32534;&#36753;&#22120;&#23558;&#36820;&#22238;</span>","<span class=\"c\">         *                      &#32463;&#36807;&#20869;&#32622;&#36807;&#28388;&#35268;&#21017;&#22788;&#29702;&#21518;&#30340;&#20869;&#23481;&#12290;</span>","<span class=\"c\">         * @remind &#35813;&#26041;&#27861;&#22312;&#22788;&#29702;&#21253;&#21547;&#26377;&#21021;&#22987;&#21270;&#20869;&#23481;&#30340;&#26102;&#20505;&#33021;&#36215;&#21040;&#24456;&#22909;&#30340;&#20316;&#29992;&#12290;</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#33719;&#21462;&#21040;&#30340;&#26159;&#32463;&#36807;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#36807;&#28388;&#35268;&#21017;&#36827;&#34892;&#36807;&#28388;&#21518;&#24471;&#21040;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @return { String } &#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * // editor &#26159;&#19968;&#20010;&#32534;&#36753;&#22120;&#30340;&#23454;&#20363;</span>","<span class=\"c\">         * var content = editor.getContent( function ( editor ) {</span>","<span class=\"c\">         *      return editor.body.innerHTML === '&#27426;&#36814;&#20351;&#29992;UEditor';</span>","<span class=\"c\">         * } );</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getContent<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cmd<span class=\"k\">,</span> fn<span class=\"k\">,</span> notSetCursor<span class=\"k\">,</span> ignoreBlank<span class=\"k\">,</span> formatter<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>cmd <span class=\"k\">&amp;&amp;</span> utils<span class=\"k\">.</span>isFunction<span class=\"k\">(</span>cmd<span class=\"k\">))</span> <span class=\"k\">{</span>","                fn <span class=\"k\">=</span> cmd<span class=\"k\">;</span>","                cmd <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>fn <span class=\"k\">?</span> <span class=\"k\">!</span>fn<span class=\"k\">()</span> <span class=\"k\">:</span> <span class=\"k\">!</span><span class=\"k\">this</span><span class=\"k\">.</span>hasContents<span class=\"k\">())</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'beforegetcontent'</span><span class=\"k\">);</span>","            <span class=\"k\">var</span> root <span class=\"k\">=</span> UE<span class=\"k\">.</span>htmlparser<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML<span class=\"k\">,</span> ignoreBlank<span class=\"k\">);</span>","            me<span class=\"k\">.</span>filterOutputRule<span class=\"k\">(</span>root<span class=\"k\">);</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'aftergetcontent'</span><span class=\"k\">,</span> cmd<span class=\"k\">);</span>","            <span class=\"k\">return</span>  root<span class=\"k\">.</span>toHtml<span class=\"k\">(</span>formatter<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#21462;&#24471;&#23436;&#25972;&#30340;html&#20195;&#30721;&#65292;&#21487;&#20197;&#30452;&#25509;&#26174;&#31034;&#25104;&#23436;&#25972;&#30340;html&#25991;&#26723;</span>","<span class=\"c\">         * @method getAllHtml</span>","<span class=\"c\">         * @return { String } &#32534;&#36753;&#22120;&#30340;&#20869;&#23481;html&#25991;&#26723;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @eaxmple</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getAllHtml();</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getAllHtml<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                headHtml <span class=\"k\">=</span> <span class=\"k\">[],</span>","                html <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'getAllHtml'</span><span class=\"k\">,</span> headHtml<span class=\"k\">);</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>ie <span class=\"k\">&amp;&amp;</span> browser<span class=\"k\">.</span>version <span class=\"k\">&gt;</span> <span class=\"s\">8</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> headHtmlForIE9 <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","                utils<span class=\"k\">.</span>each<span class=\"k\">(</span>me<span class=\"k\">.</span>document<span class=\"k\">.</span>styleSheets<span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">(</span>si<span class=\"k\">)</span> <span class=\"k\">{</span>","                    headHtmlForIE9 <span class=\"k\">+=</span> <span class=\"k\">(</span> si<span class=\"k\">.</span>href <span class=\"k\">?</span> <span class=\"s\">'&lt;link rel=\"stylesheet\" type=\"text/css\" href=\"'</span> <span class=\"k\">+</span> si<span class=\"k\">.</span>href <span class=\"k\">+</span> <span class=\"s\">'\" /&gt;'</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;style&gt;'</span> <span class=\"k\">+</span> si<span class=\"k\">.</span>cssText <span class=\"k\">+</span> <span class=\"s\">'&lt;/style&gt;'</span><span class=\"k\">);</span>","                <span class=\"k\">}</span><span class=\"k\">);</span>","                utils<span class=\"k\">.</span>each<span class=\"k\">(</span>me<span class=\"k\">.</span>document<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span><span class=\"s\">'script'</span><span class=\"k\">),</span> <span class=\"k\">function</span> <span class=\"k\">(</span>si<span class=\"k\">)</span> <span class=\"k\">{</span>","                    headHtmlForIE9 <span class=\"k\">+=</span> si<span class=\"k\">.</span>outerHTML<span class=\"k\">;</span>","                <span class=\"k\">}</span><span class=\"k\">);</span>","","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"s\">'&lt;html&gt;&lt;head&gt;'</span> <span class=\"k\">+</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>charset <span class=\"k\">?</span> <span class=\"s\">'&lt;meta http-equiv=\"Content-Type\" content=\"text/html; charset='</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>options<span class=\"k\">.</span>charset <span class=\"k\">+</span> <span class=\"s\">'\"/&gt;'</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">)</span>","                <span class=\"k\">+</span> <span class=\"k\">(</span>headHtmlForIE9 <span class=\"k\">||</span> me<span class=\"k\">.</span>document<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span><span class=\"s\">'head'</span><span class=\"k\">)[</span><span class=\"s\">0</span><span class=\"k\">].</span>innerHTML<span class=\"k\">)</span> <span class=\"k\">+</span> headHtml<span class=\"k\">.</span>join<span class=\"k\">(</span><span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&lt;/head&gt;'</span>","                <span class=\"k\">+</span> <span class=\"s\">'&lt;body '</span> <span class=\"k\">+</span> <span class=\"k\">(</span>ie <span class=\"k\">&amp;&amp;</span> browser<span class=\"k\">.</span>version <span class=\"k\">&lt;</span> <span class=\"s\">9</span> <span class=\"k\">?</span> <span class=\"s\">'class=\"view\"'</span> <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&gt;'</span> <span class=\"k\">+</span> me<span class=\"k\">.</span>getContent<span class=\"k\">(</span><span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"k\">null</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&lt;/body&gt;&lt;/html&gt;'</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#24471;&#21040;&#32534;&#36753;&#22120;&#30340;&#32431;&#25991;&#26412;&#20869;&#23481;&#65292;&#20294;&#20250;&#20445;&#30041;&#27573;&#33853;&#26684;&#24335;</span>","<span class=\"c\">         * @method getPlainTxt</span>","<span class=\"c\">         * @return { String } &#32534;&#36753;&#22120;&#24102;&#27573;&#33853;&#26684;&#24335;&#30340;&#32431;&#25991;&#26412;&#20869;&#23481;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getPlainTxt();</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getPlainTxt<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> reg <span class=\"k\">=</span> <span class=\"k\">new</span> RegExp<span class=\"k\">(</span>domUtils<span class=\"k\">.</span>fillChar<span class=\"k\">,</span> <span class=\"s\">'g'</span><span class=\"k\">),</span>","                html <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/[\\n\\r]/g</span><span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">);</span><span class=\"c\">//ie&#35201;&#20808;&#21435;&#20102;\\n&#22312;&#22788;&#29702;</span>","            html <span class=\"k\">=</span> html<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/&lt;(p|div)[^&gt;]*&gt;(&lt;br\\/?&gt;|&amp;nbsp;)&lt;\\/\\1&gt;/gi</span><span class=\"k\">,</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">)</span>","                <span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/&lt;br\\/?&gt;/gi</span><span class=\"k\">,</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span><span class=\"k\">)</span>","                <span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/&lt;[^&gt;/]+&gt;/g</span><span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">)</span>","                <span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/(\\n)?&lt;\\/([^&gt;]+)&gt;/g</span><span class=\"k\">,</span> <span class=\"k\">function</span> <span class=\"k\">(</span>a<span class=\"k\">,</span> b<span class=\"k\">,</span> c<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span> dtd<span class=\"k\">.</span>$block<span class=\"k\">[</span>c<span class=\"k\">]</span> <span class=\"k\">?</span> <span class=\"s\">'</span><span class=\"t\">\\n</span><span class=\"s\">'</span> <span class=\"k\">:</span> b <span class=\"k\">?</span> b <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">;</span>","                <span class=\"k\">}</span><span class=\"k\">);</span>","            <span class=\"c\">//&#21462;&#20986;&#26469;&#30340;&#31354;&#26684;&#20250;&#26377;c2a0&#20250;&#21464;&#25104;&#20081;&#30721;&#65292;&#22788;&#29702;&#36825;&#31181;&#24773;&#20917;\\u00a0</span>","            <span class=\"k\">return</span> html<span class=\"k\">.</span>replace<span class=\"k\">(</span>reg<span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">).</span>replace<span class=\"k\">(</span><span class=\"s\">/\\u00a0/g</span><span class=\"k\">,</span> <span class=\"s\">' '</span><span class=\"k\">).</span>replace<span class=\"k\">(</span><span class=\"s\">/&amp;nbsp;/g</span><span class=\"k\">,</span> <span class=\"s\">' '</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#33719;&#21462;&#32534;&#36753;&#22120;&#20013;&#30340;&#32431;&#25991;&#26412;&#20869;&#23481;,&#27809;&#26377;&#27573;&#33853;&#26684;&#24335;</span>","<span class=\"c\">         * @method getContentTxt</span>","<span class=\"c\">         * @return { String } &#32534;&#36753;&#22120;&#19981;&#24102;&#27573;&#33853;&#26684;&#24335;&#30340;&#32431;&#25991;&#26412;&#20869;&#23481;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContentTxt();</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getContentTxt<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> reg <span class=\"k\">=</span> <span class=\"k\">new</span> RegExp<span class=\"k\">(</span>domUtils<span class=\"k\">.</span>fillChar<span class=\"k\">,</span> <span class=\"s\">'g'</span><span class=\"k\">);</span>","            <span class=\"c\">//&#21462;&#20986;&#26469;&#30340;&#31354;&#26684;&#20250;&#26377;c2a0&#20250;&#21464;&#25104;&#20081;&#30721;&#65292;&#22788;&#29702;&#36825;&#31181;&#24773;&#20917;\\u00a0</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">[</span>browser<span class=\"k\">.</span>ie <span class=\"k\">?</span> <span class=\"s\">'innerText'</span> <span class=\"k\">:</span> <span class=\"s\">'textContent'</span><span class=\"k\">].</span>replace<span class=\"k\">(</span>reg<span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">).</span>replace<span class=\"k\">(</span><span class=\"s\">/\\u00a0/g</span><span class=\"k\">,</span> <span class=\"s\">' '</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#65292;&#21487;&#20462;&#25913;&#32534;&#36753;&#22120;&#24403;&#21069;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @method setContent</span>","<span class=\"c\">         * @warning &#36890;&#36807;&#35813;&#26041;&#27861;&#25554;&#20837;&#30340;&#20869;&#23481;&#65292;&#26159;&#32463;&#36807;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#36807;&#28388;&#35268;&#21017;&#36827;&#34892;&#36807;&#28388;&#21518;&#24471;&#21040;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#20250;&#20986;&#21457;selectionchange&#20107;&#20214;</span>","<span class=\"c\">         * @param { String } &#35201;&#25554;&#20837;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContent('&lt;p&gt;test&lt;/p&gt;');</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#65292;&#21487;&#20462;&#25913;&#32534;&#36753;&#22120;&#24403;&#21069;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @method setContent</span>","<span class=\"c\">         * @warning &#36890;&#36807;&#35813;&#26041;&#27861;&#25554;&#20837;&#30340;&#20869;&#23481;&#65292;&#26159;&#32463;&#36807;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#36807;&#28388;&#35268;&#21017;&#36827;&#34892;&#36807;&#28388;&#21518;&#24471;&#21040;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @warning &#35813;&#26041;&#27861;&#20250;&#20986;&#21457;selectionchange&#20107;&#20214;</span>","<span class=\"c\">         * @param { String } html &#35201;&#25554;&#20837;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @param { Boolean } isAppendTo &#33509;&#20256;&#20837;true&#65292;&#19981;&#28165;&#31354;&#21407;&#26469;&#30340;&#20869;&#23481;&#65292;&#22312;&#26368;&#21518;&#25554;&#20837;&#20869;&#23481;&#65292;&#21542;&#21017;&#65292;&#28165;&#31354;&#20869;&#23481;&#20877;&#25554;&#20837;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * //&#20551;&#35774;&#35774;&#32622;&#21069;&#30340;&#32534;&#36753;&#22120;&#20869;&#23481;&#26159; &lt;p&gt;old text&lt;/p&gt;</span>","<span class=\"c\">         * editor.getContent('&lt;p&gt;new text&lt;/p&gt;', true); //&#25554;&#20837;&#30340;&#32467;&#26524;&#26159;&lt;p&gt;old text&lt;/p&gt;&lt;p&gt;new text&lt;/p&gt;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#32534;&#36753;&#22120;&#30340;&#20869;&#23481;&#65292;&#21487;&#20462;&#25913;&#32534;&#36753;&#22120;&#24403;&#21069;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @method setContent</span>","<span class=\"c\">         * @warning &#36890;&#36807;&#35813;&#26041;&#27861;&#25554;&#20837;&#30340;&#20869;&#23481;&#65292;&#26159;&#32463;&#36807;&#32534;&#36753;&#22120;&#20869;&#32622;&#30340;&#36807;&#28388;&#35268;&#21017;&#36827;&#34892;&#36807;&#28388;&#21518;&#24471;&#21040;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         * @param { String } html &#35201;&#25554;&#20837;&#30340;html&#20869;&#23481;</span>","<span class=\"c\">         * @param { Boolean } isAppendTo &#33509;&#20256;&#20837;true&#65292;&#19981;&#28165;&#31354;&#21407;&#26469;&#30340;&#20869;&#23481;&#65292;&#22312;&#26368;&#21518;&#25554;&#20837;&#20869;&#23481;&#65292;&#21542;&#21017;&#65292;&#28165;&#31354;&#20869;&#23481;&#20877;&#25554;&#20837;</span>","<span class=\"c\">         * @param { Boolean } notFireSelectionchange &#33509;&#20256;&#20837;true&#65292;&#25191;&#34892;&#35813;&#20989;&#25968;&#36807;&#31243;&#19981;&#35302;&#21457;&#32534;&#36753;&#22120;&#30340;selectionchange&#20107;&#20214;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContent('&lt;p&gt;new text&lt;/p&gt;', false, true);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        setContent<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>html<span class=\"k\">,</span> isAppendTo<span class=\"k\">,</span> notFireSelectionchange<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'beforesetcontent'</span><span class=\"k\">,</span> html<span class=\"k\">);</span>","            <span class=\"k\">var</span> root <span class=\"k\">=</span> UE<span class=\"k\">.</span>htmlparser<span class=\"k\">(</span>html<span class=\"k\">);</span>","            me<span class=\"k\">.</span>filterInputRule<span class=\"k\">(</span>root<span class=\"k\">);</span>","            html <span class=\"k\">=</span> root<span class=\"k\">.</span>toHtml<span class=\"k\">();</span>","","","            me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"k\">(</span>isAppendTo <span class=\"k\">?</span> me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">:</span> <span class=\"s\">''</span><span class=\"k\">)</span> <span class=\"k\">+</span> html<span class=\"k\">;</span>","","","            <span class=\"k\">function</span> isCdataDiv<span class=\"k\">(</span>node<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span>  node<span class=\"k\">.</span>tagName <span class=\"k\">==</span> <span class=\"s\">'DIV'</span> <span class=\"k\">&amp;&amp;</span> node<span class=\"k\">.</span>getAttribute<span class=\"k\">(</span><span class=\"s\">'cdata_tag'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","","            <span class=\"c\">//&#32473;&#25991;&#26412;&#25110;&#32773;inline&#33410;&#28857;&#22871;p&#26631;&#31614;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>enterTag <span class=\"k\">==</span> <span class=\"s\">'p'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","","                <span class=\"k\">var</span> child <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>firstChild<span class=\"k\">,</span> tmpNode<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>child <span class=\"k\">||</span> child<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span>","                    <span class=\"k\">(</span>dtd<span class=\"k\">.</span>$cdata<span class=\"k\">[</span>child<span class=\"k\">.</span>tagName<span class=\"k\">]</span> <span class=\"k\">||</span> isCdataDiv<span class=\"k\">(</span>child<span class=\"k\">)</span> <span class=\"k\">||</span>","                        domUtils<span class=\"k\">.</span>isCustomeNode<span class=\"k\">(</span>child<span class=\"k\">)</span>","                        <span class=\"k\">)</span>","                    <span class=\"k\">&amp;&amp;</span> child <span class=\"k\">===</span> <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>lastChild<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">'&lt;p&gt;'</span> <span class=\"k\">+</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>ie <span class=\"k\">?</span> <span class=\"s\">'&amp;nbsp;'</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;br/&gt;'</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&lt;/p&gt;'</span> <span class=\"k\">+</span> <span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML<span class=\"k\">;</span>","","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    <span class=\"k\">var</span> p <span class=\"k\">=</span> me<span class=\"k\">.</span>document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">'p'</span><span class=\"k\">);</span>","                    <span class=\"k\">while</span> <span class=\"k\">(</span>child<span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">while</span> <span class=\"k\">(</span>child <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>child<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">3</span> <span class=\"k\">||</span> child<span class=\"k\">.</span>nodeType <span class=\"k\">==</span> <span class=\"s\">1</span> <span class=\"k\">&amp;&amp;</span> dtd<span class=\"k\">.</span>p<span class=\"k\">[</span>child<span class=\"k\">.</span>tagName<span class=\"k\">]</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>dtd<span class=\"k\">.</span>$cdata<span class=\"k\">[</span>child<span class=\"k\">.</span>tagName<span class=\"k\">]))</span> <span class=\"k\">{</span>","                            tmpNode <span class=\"k\">=</span> child<span class=\"k\">.</span>nextSibling<span class=\"k\">;</span>","                            p<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>child<span class=\"k\">);</span>","                            child <span class=\"k\">=</span> tmpNode<span class=\"k\">;</span>","                        <span class=\"k\">}</span>","                        <span class=\"k\">if</span> <span class=\"k\">(</span>p<span class=\"k\">.</span>firstChild<span class=\"k\">)</span> <span class=\"k\">{</span>","                            <span class=\"k\">if</span> <span class=\"k\">(!</span>child<span class=\"k\">)</span> <span class=\"k\">{</span>","                                me<span class=\"k\">.</span>body<span class=\"k\">.</span>appendChild<span class=\"k\">(</span>p<span class=\"k\">);</span>","                                <span class=\"k\">break</span><span class=\"k\">;</span>","                            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                                child<span class=\"k\">.</span>parentNode<span class=\"k\">.</span>insertBefore<span class=\"k\">(</span>p<span class=\"k\">,</span> child<span class=\"k\">);</span>","                                p <span class=\"k\">=</span> me<span class=\"k\">.</span>document<span class=\"k\">.</span>createElement<span class=\"k\">(</span><span class=\"s\">'p'</span><span class=\"k\">);</span>","                            <span class=\"k\">}</span>","                        <span class=\"k\">}</span>","                        child <span class=\"k\">=</span> child<span class=\"k\">.</span>nextSibling<span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'aftersetcontent'</span><span class=\"k\">);</span>","            me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'contentchange'</span><span class=\"k\">);</span>","","            <span class=\"k\">!</span>notFireSelectionchange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>_selectionChange<span class=\"k\">();</span>","            <span class=\"c\">//&#28165;&#38500;&#20445;&#23384;&#30340;&#36873;&#21306;</span>","            me<span class=\"k\">.</span>_bakRange <span class=\"k\">=</span> me<span class=\"k\">.</span>_bakIERange <span class=\"k\">=</span> me<span class=\"k\">.</span>_bakNativeRange <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"c\">//trace:1742 setContent&#21518;gecko&#33021;&#24471;&#21040;&#28966;&#28857;&#38382;&#39064;</span>","            <span class=\"k\">var</span> geckoSel<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>gecko <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>geckoSel <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">()))</span> <span class=\"k\">{</span>","                geckoSel<span class=\"k\">.</span>removeAllRanges<span class=\"k\">();</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>options<span class=\"k\">.</span>autoSyncData<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>form <span class=\"k\">&amp;&amp;</span> setValue<span class=\"k\">(</span>me<span class=\"k\">.</span>form<span class=\"k\">,</span> me<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35753;&#32534;&#36753;&#22120;&#33719;&#24471;&#28966;&#28857;&#65292;&#40664;&#35748;focus&#21040;&#32534;&#36753;&#22120;&#22836;&#37096;</span>","<span class=\"c\">         * @method focus</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.focus()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35753;&#32534;&#36753;&#22120;&#33719;&#24471;&#28966;&#28857;&#65292;toEnd&#30830;&#23450;focus&#20301;&#32622;</span>","<span class=\"c\">         * @method focus</span>","<span class=\"c\">         * @param { Boolean } toEnd &#40664;&#35748;focus&#21040;&#32534;&#36753;&#22120;&#22836;&#37096;&#65292;toEnd&#20026;true&#26102;focus&#21040;&#20869;&#23481;&#23614;&#37096;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.focus(true)</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        focus<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>toEnd<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">try</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                    rng <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>toEnd<span class=\"k\">)</span> <span class=\"k\">{</span>","                    rng<span class=\"k\">.</span>setStartAtLast<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">.</span>lastChild<span class=\"k\">).</span>setCursor<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                    rng<span class=\"k\">.</span>select<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","                <span class=\"k\">this</span><span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'focus'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#21021;&#22987;&#21270;UE&#20107;&#20214;&#21450;&#37096;&#20998;&#20107;&#20214;&#20195;&#29702;</span>","<span class=\"c\">         * @method _initEvents</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         */</span>","        _initEvents<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                doc <span class=\"k\">=</span> me<span class=\"k\">.</span>document<span class=\"k\">,</span>","                win <span class=\"k\">=</span> me<span class=\"k\">.</span>window<span class=\"k\">;</span>","            me<span class=\"k\">.</span>_proxyDomEvent <span class=\"k\">=</span> utils<span class=\"k\">.</span>bind<span class=\"k\">(</span>me<span class=\"k\">.</span>_proxyDomEvent<span class=\"k\">,</span> me<span class=\"k\">);</span>","            domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>doc<span class=\"k\">,</span> <span class=\"k\">[</span><span class=\"s\">'click'</span><span class=\"k\">,</span> <span class=\"s\">'contextmenu'</span><span class=\"k\">,</span> <span class=\"s\">'mousedown'</span><span class=\"k\">,</span> <span class=\"s\">'keydown'</span><span class=\"k\">,</span> <span class=\"s\">'keyup'</span><span class=\"k\">,</span> <span class=\"s\">'keypress'</span><span class=\"k\">,</span> <span class=\"s\">'mouseup'</span><span class=\"k\">,</span> <span class=\"s\">'mouseover'</span><span class=\"k\">,</span> <span class=\"s\">'mouseout'</span><span class=\"k\">,</span> <span class=\"s\">'selectstart'</span><span class=\"k\">],</span> me<span class=\"k\">.</span>_proxyDomEvent<span class=\"k\">);</span>","            domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>win<span class=\"k\">,</span> <span class=\"k\">[</span><span class=\"s\">'focus'</span><span class=\"k\">,</span> <span class=\"s\">'blur'</span><span class=\"k\">],</span> me<span class=\"k\">.</span>_proxyDomEvent<span class=\"k\">);</span>","            domUtils<span class=\"k\">.</span>on<span class=\"k\">(</span>doc<span class=\"k\">,</span> <span class=\"k\">[</span><span class=\"s\">'mouseup'</span><span class=\"k\">,</span> <span class=\"s\">'keydown'</span><span class=\"k\">],</span> <span class=\"k\">function</span> <span class=\"k\">(</span>evt<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">//&#29305;&#27530;&#38190;&#19981;&#35302;&#21457;selectionchange</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>evt<span class=\"k\">.</span>type <span class=\"k\">==</span> <span class=\"s\">'keydown'</span> <span class=\"k\">&amp;&amp;</span> <span class=\"k\">(</span>evt<span class=\"k\">.</span>ctrlKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>metaKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>shiftKey <span class=\"k\">||</span> evt<span class=\"k\">.</span>altKey<span class=\"k\">))</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>evt<span class=\"k\">.</span>button <span class=\"k\">==</span> <span class=\"s\">2</span><span class=\"k\">)</span><span class=\"k\">return</span><span class=\"k\">;</span>","                me<span class=\"k\">.</span>_selectionChange<span class=\"k\">(</span><span class=\"s\">250</span><span class=\"k\">,</span> evt<span class=\"k\">);</span>","            <span class=\"k\">}</span><span class=\"k\">);</span>","<span class=\"c\">//            //&#22788;&#29702;&#25302;&#25341;</span>","<span class=\"c\">//            //ie ff&#19981;&#33021;&#20174;&#22806;&#36793;&#25302;&#20837;</span>","<span class=\"c\">//            //chrome&#21482;&#38024;&#23545;&#20174;&#22806;&#36793;&#25302;&#20837;&#30340;&#20869;&#23481;&#36807;&#28388;</span>","<span class=\"c\">//            var innerDrag = 0, source = browser.ie ? me.body : me.document, dragoverHandler;</span>","<span class=\"c\">//            domUtils.on(source, 'dragstart', function () {</span>","<span class=\"c\">//                innerDrag = 1;</span>","<span class=\"c\">//            });</span>","<span class=\"c\">//            domUtils.on(source, browser.webkit ? 'dragover' : 'drop', function () {</span>","<span class=\"c\">//                return browser.webkit ?</span>","<span class=\"c\">//                    function () {</span>","<span class=\"c\">//                        clearTimeout(dragoverHandler);</span>","<span class=\"c\">//                        dragoverHandler = setTimeout(function () {</span>","<span class=\"c\">//                            if (!innerDrag) {</span>","<span class=\"c\">//                                var sel = me.selection,</span>","<span class=\"c\">//                                    range = sel.getRange();</span>","<span class=\"c\">//                                if (range) {</span>","<span class=\"c\">//                                    var common = range.getCommonAncestor();</span>","<span class=\"c\">//                                    if (common &amp;&amp; me.serialize) {</span>","<span class=\"c\">//                                        var f = me.serialize,</span>","<span class=\"c\">//                                            node =</span>","<span class=\"c\">//                                                f.filter(</span>","<span class=\"c\">//                                                    f.transformInput(</span>","<span class=\"c\">//                                                        f.parseHTML(</span>","<span class=\"c\">//                                                            f.word(common.innerHTML)</span>","<span class=\"c\">//                                                        )</span>","<span class=\"c\">//                                                    )</span>","<span class=\"c\">//                                                );</span>","<span class=\"c\">//                                        common.innerHTML = f.toHTML(node);</span>","<span class=\"c\">//                                    }</span>","<span class=\"c\">//                                }</span>","<span class=\"c\">//                            }</span>","<span class=\"c\">//                            innerDrag = 0;</span>","<span class=\"c\">//                        }, 200);</span>","<span class=\"c\">//                    } :</span>","<span class=\"c\">//                    function (e) {</span>","<span class=\"c\">//                        if (!innerDrag) {</span>","<span class=\"c\">//                            e.preventDefault ? e.preventDefault() : (e.returnValue = false);</span>","<span class=\"c\">//                        }</span>","<span class=\"c\">//                        innerDrag = 0;</span>","<span class=\"c\">//                    }</span>","<span class=\"c\">//            }());</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35302;&#21457;&#20107;&#20214;&#20195;&#29702;</span>","<span class=\"c\">         * @method _proxyDomEvent</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         * @return { * } fireEvent&#30340;&#36820;&#22238;&#20540;</span>","<span class=\"c\">         * @see UE.EventBase:fireEvent(String)</span>","<span class=\"c\">         */</span>","        _proxyDomEvent<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>evt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>fireEvent<span class=\"k\">(</span>evt<span class=\"k\">.</span>type<span class=\"k\">.</span>replace<span class=\"k\">(</span><span class=\"s\">/^on/</span><span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">),</span> evt<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#21464;&#21270;&#36873;&#21306;</span>","<span class=\"c\">         * @method _selectionChange</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         */</span>","        _selectionChange<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>delay<span class=\"k\">,</span> evt<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            <span class=\"c\">//&#26377;&#20809;&#26631;&#25165;&#20570;selectionchange &#20026;&#20102;&#35299;&#20915;&#26410;focus&#26102;&#28857;&#20987;source&#19981;&#33021;&#35302;&#21457;&#26356;&#25913;&#24037;&#20855;&#26639;&#29366;&#24577;&#30340;&#38382;&#39064;&#65288;source&#21629;&#20196;notNeedUndo=1&#65289;</span>","<span class=\"c\">//            if ( !me.selection.isFocus() ){</span>","<span class=\"c\">//                return;</span>","<span class=\"c\">//            }</span>","","","            <span class=\"k\">var</span> hackForMouseUp <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            <span class=\"k\">var</span> mouseX<span class=\"k\">,</span> mouseY<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>browser<span class=\"k\">.</span>ie <span class=\"k\">&amp;&amp;</span> browser<span class=\"k\">.</span>version <span class=\"k\">&lt;</span> <span class=\"s\">9</span> <span class=\"k\">&amp;&amp;</span> evt <span class=\"k\">&amp;&amp;</span> evt<span class=\"k\">.</span>type <span class=\"k\">==</span> <span class=\"s\">'mouseup'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> range <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>range<span class=\"k\">.</span>collapsed<span class=\"k\">)</span> <span class=\"k\">{</span>","                    hackForMouseUp <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                    mouseX <span class=\"k\">=</span> evt<span class=\"k\">.</span>clientX<span class=\"k\">;</span>","                    mouseY <span class=\"k\">=</span> evt<span class=\"k\">.</span>clientY<span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            clearTimeout<span class=\"k\">(</span>_selectionChangeTimer<span class=\"k\">);</span>","            _selectionChangeTimer <span class=\"k\">=</span> setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">())</span> <span class=\"k\">{</span>","                    <span class=\"k\">return</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"c\">//&#20462;&#22797;&#19968;&#20010;IE&#19979;&#30340;bug: &#40736;&#26631;&#28857;&#20987;&#19968;&#27573;&#24050;&#36873;&#25321;&#30340;&#25991;&#26412;&#20013;&#38388;&#26102;&#65292;&#21487;&#33021;&#22312;mouseup&#21518;&#30340;&#19968;&#27573;&#26102;&#38388;&#20869;&#21462;&#21040;&#30340;range&#26159;&#22312;selection&#30340;type&#20026;None&#19979;&#30340;&#38169;&#35823;&#20540;.</span>","                <span class=\"c\">//IE&#19979;&#22914;&#26524;&#29992;&#25143;&#26159;&#25302;&#25341;&#19968;&#27573;&#24050;&#36873;&#25321;&#25991;&#26412;&#65292;&#21017;&#19981;&#20250;&#35302;&#21457;mouseup&#20107;&#20214;&#65292;&#25152;&#20197;&#36825;&#37324;&#30340;&#29305;&#27530;&#22788;&#29702;&#19981;&#20250;&#23545;&#20854;&#26377;&#24433;&#21709;</span>","                <span class=\"k\">var</span> ieRange<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>hackForMouseUp <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getNative<span class=\"k\">().</span>type <span class=\"k\">==</span> <span class=\"s\">'None'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    ieRange <span class=\"k\">=</span> me<span class=\"k\">.</span>document<span class=\"k\">.</span>body<span class=\"k\">.</span>createTextRange<span class=\"k\">();</span>","                    <span class=\"k\">try</span> <span class=\"k\">{</span>","                        ieRange<span class=\"k\">.</span>moveToPoint<span class=\"k\">(</span>mouseX<span class=\"k\">,</span> mouseY<span class=\"k\">);</span>","                    <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>ex<span class=\"k\">)</span> <span class=\"k\">{</span>","                        ieRange <span class=\"k\">=</span> <span class=\"k\">null</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","                <span class=\"k\">var</span> bakGetIERange<span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>ieRange<span class=\"k\">)</span> <span class=\"k\">{</span>","                    bakGetIERange <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getIERange<span class=\"k\">;</span>","                    me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getIERange <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                        <span class=\"k\">return</span> ieRange<span class=\"k\">;</span>","                    <span class=\"k\">}</span><span class=\"k\">;</span>","                <span class=\"k\">}</span>","                me<span class=\"k\">.</span>selection<span class=\"k\">.</span>cache<span class=\"k\">();</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>bakGetIERange<span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getIERange <span class=\"k\">=</span> bakGetIERange<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>selection<span class=\"k\">.</span>_cachedRange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>_cachedStartElement<span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'beforeselectionchange'</span><span class=\"k\">);</span>","                    <span class=\"c\">// &#31532;&#20108;&#20010;&#21442;&#25968;causeByUi&#20026;true&#20195;&#34920;&#30001;&#29992;&#25143;&#20132;&#20114;&#36896;&#25104;&#30340;selectionchange.</span>","                    me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'selectionchange'</span><span class=\"k\">,</span> <span class=\"k\">!!</span>evt<span class=\"k\">);</span>","                    me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'afterselectionchange'</span><span class=\"k\">);</span>","                    me<span class=\"k\">.</span>selection<span class=\"k\">.</span>clear<span class=\"k\">();</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span><span class=\"k\">,</span> delay <span class=\"k\">||</span> <span class=\"s\">50</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#25191;&#34892;&#32534;&#36753;&#21629;&#20196;</span>","<span class=\"c\">         * @method _callCmdFn</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         * @param { String } fnName &#20989;&#25968;&#21517;&#31216;</span>","<span class=\"c\">         * @param { * } args &#20256;&#32473;&#21629;&#20196;&#20989;&#25968;&#30340;&#21442;&#25968;</span>","<span class=\"c\">         * @return { * } &#36820;&#22238;&#21629;&#20196;&#20989;&#25968;&#36816;&#34892;&#30340;&#36820;&#22238;&#20540;</span>","<span class=\"c\">         */</span>","        _callCmdFn<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>fnName<span class=\"k\">,</span> args<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> cmdName <span class=\"k\">=</span> args<span class=\"k\">[</span><span class=\"s\">0</span><span class=\"k\">].</span>toLowerCase<span class=\"k\">(),</span>","                cmd<span class=\"k\">,</span> cmdFn<span class=\"k\">;</span>","            cmd <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>commands<span class=\"k\">[</span>cmdName<span class=\"k\">]</span> <span class=\"k\">||</span> UE<span class=\"k\">.</span>commands<span class=\"k\">[</span>cmdName<span class=\"k\">];</span>","            cmdFn <span class=\"k\">=</span> cmd <span class=\"k\">&amp;&amp;</span> cmd<span class=\"k\">[</span>fnName<span class=\"k\">];</span>","            <span class=\"c\">//&#27809;&#26377;querycommandstate&#25110;&#32773;&#27809;&#26377;command&#30340;&#37117;&#40664;&#35748;&#36820;&#22238;0</span>","            <span class=\"k\">if</span> <span class=\"k\">((!</span>cmd <span class=\"k\">||</span> <span class=\"k\">!</span>cmdFn<span class=\"k\">)</span> <span class=\"k\">&amp;&amp;</span> fnName <span class=\"k\">==</span> <span class=\"s\">'queryCommandState'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"s\">0</span><span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">if</span> <span class=\"k\">(</span>cmdFn<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> cmdFn<span class=\"k\">.</span>apply<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span> args<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#25191;&#34892;&#32534;&#36753;&#21629;&#20196;cmdName&#65292;&#23436;&#25104;&#23500;&#25991;&#26412;&#32534;&#36753;&#25928;&#26524;</span>","<span class=\"c\">         * @method execCommand</span>","<span class=\"c\">         * @return { * } &#36820;&#22238;&#21629;&#20196;&#20989;&#25968;&#36816;&#34892;&#30340;&#36820;&#22238;&#20540;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.execCommand(cmdName);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        execCommand<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cmdName<span class=\"k\">)</span> <span class=\"k\">{</span>","            cmdName <span class=\"k\">=</span> cmdName<span class=\"k\">.</span>toLowerCase<span class=\"k\">();</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span>","                result<span class=\"k\">,</span>","                cmd <span class=\"k\">=</span> me<span class=\"k\">.</span>commands<span class=\"k\">[</span>cmdName<span class=\"k\">]</span> <span class=\"k\">||</span> UE<span class=\"k\">.</span>commands<span class=\"k\">[</span>cmdName<span class=\"k\">];</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>cmd <span class=\"k\">||</span> <span class=\"k\">!</span>cmd<span class=\"k\">.</span>execCommand<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">null</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>cmd<span class=\"k\">.</span>notNeedUndo <span class=\"k\">&amp;&amp;</span> <span class=\"k\">!</span>me<span class=\"k\">.</span>__hasEnterExecCommand<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>__hasEnterExecCommand <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>queryCommandState<span class=\"k\">.</span>apply<span class=\"k\">(</span>me<span class=\"k\">,</span> arguments<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'beforeexeccommand'</span><span class=\"k\">,</span> cmdName<span class=\"k\">);</span>","                    result <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_callCmdFn<span class=\"k\">(</span><span class=\"s\">'execCommand'</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","                    <span class=\"k\">!</span>me<span class=\"k\">.</span>_ignoreContentChange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'contentchange'</span><span class=\"k\">);</span>","                    me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'afterexeccommand'</span><span class=\"k\">,</span> cmdName<span class=\"k\">);</span>","                <span class=\"k\">}</span>","                me<span class=\"k\">.</span>__hasEnterExecCommand <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","            <span class=\"k\">}</span> <span class=\"k\">else</span> <span class=\"k\">{</span>","                result <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>_callCmdFn<span class=\"k\">(</span><span class=\"s\">'execCommand'</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","                <span class=\"k\">!</span>me<span class=\"k\">.</span>_ignoreContentChange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'contentchange'</span><span class=\"k\">)</span>","            <span class=\"k\">}</span>","            <span class=\"k\">!</span>me<span class=\"k\">.</span>_ignoreContentChange <span class=\"k\">&amp;&amp;</span> me<span class=\"k\">.</span>_selectionChange<span class=\"k\">();</span>","            <span class=\"k\">return</span> result<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#20256;&#20837;&#30340;command&#21629;&#20196;&#65292;&#26597;&#36873;&#32534;&#36753;&#22120;&#24403;&#21069;&#30340;&#36873;&#21306;&#65292;&#36820;&#22238;&#21629;&#20196;&#30340;&#29366;&#24577;</span>","<span class=\"c\">         * @method  queryCommandState</span>","<span class=\"c\">         * @return { Number } number &#36820;&#22238;&#25918;&#21069;&#21629;&#20196;&#30340;&#29366;&#24577;</span>","<span class=\"c\">         * &#36820;&#22238; -1 &#24403;&#21069;&#21629;&#20196;&#19981;&#21487;&#29992;</span>","<span class=\"c\">         * &#36820;&#22238; 0 &#24403;&#21069;&#21629;&#20196;&#21487;&#29992;</span>","<span class=\"c\">         * &#36820;&#22238; 1 &#24403;&#21069;&#21629;&#20196;&#24050;&#32463;&#25191;&#34892;&#36807;&#20102;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.queryCommandState(cmdName)  =&gt; (-1|0|1)</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        queryCommandState<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cmdName<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_callCmdFn<span class=\"k\">(</span><span class=\"s\">'queryCommandState'</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#20256;&#20837;&#30340;command&#21629;&#20196;&#65292;&#26597;&#36873;&#32534;&#36753;&#22120;&#24403;&#21069;&#30340;&#36873;&#21306;&#65292;&#26681;&#25454;&#21629;&#20196;&#36820;&#22238;&#30456;&#20851;&#30340;&#20540;</span>","<span class=\"c\">         * @method queryCommandValue</span>","<span class=\"c\">         * @remind &#21482;&#26377;&#37096;&#20998;&#25554;&#20214;&#26377;&#27492;&#26041;&#27861;</span>","<span class=\"c\">         * @return { * } &#36820;&#22238;&#27599;&#20010;&#21629;&#20196;&#29305;&#23450;&#30340;&#24403;&#21069;&#29366;&#24577;&#20540;</span>","<span class=\"c\">         * @grammar editor.queryCommandValue(cmdName)  =&gt;  {*}</span>","<span class=\"c\">         */</span>","        queryCommandValue<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cmdName<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>_callCmdFn<span class=\"k\">(</span><span class=\"s\">'queryCommandValue'</span><span class=\"k\">,</span> arguments<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26816;&#26597;&#32534;&#36753;&#21306;&#22495;&#20013;&#26159;&#21542;&#26377;&#20869;&#23481;</span>","<span class=\"c\">         * @method  hasContents</span>","<span class=\"c\">         * @remind &#40664;&#35748;&#26377;&#25991;&#26412;&#20869;&#23481;&#65292;&#25110;&#32773;&#26377;&#20197;&#19979;&#33410;&#28857;&#37117;&#19981;&#35748;&#20026;&#26159;&#31354;</span>","<span class=\"c\">         * table,ul,ol,dl,iframe,area,base,col,hr,img,embed,input,link,meta,param</span>","<span class=\"c\">         * @return { Boolean } &#26816;&#26597;&#26377;&#20869;&#23481;&#36820;&#22238;true&#65292;&#21542;&#21017;&#36820;&#22238;false</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.hasContents()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26816;&#26597;&#32534;&#36753;&#21306;&#22495;&#20013;&#26159;&#21542;&#26377;&#20869;&#23481;&#65292;&#33509;&#21253;&#21547;&#21442;&#25968;tags&#20013;&#30340;&#33410;&#28857;&#31867;&#22411;&#65292;&#30452;&#25509;&#36820;&#22238;true</span>","<span class=\"c\">         * @method  hasContents</span>","<span class=\"c\">         * @param { Array } tags &#20256;&#20837;&#25968;&#32452;&#21028;&#26029;&#26102;&#29992;&#21040;&#30340;&#33410;&#28857;&#31867;&#22411;</span>","<span class=\"c\">         * @return { Boolean } &#33509;&#25991;&#26723;&#20013;&#21253;&#21547;tags&#25968;&#32452;&#37324;&#23545;&#24212;&#30340;tag&#65292;&#36820;&#22238;true&#65292;&#21542;&#21017;&#36820;&#22238;false</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.hasContents(['span']);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        hasContents<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>tags<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>tags<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ci<span class=\"k\">;</span> ci <span class=\"k\">=</span> tags<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>document<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span>ci<span class=\"k\">).</span>length <span class=\"k\">&gt;</span> <span class=\"s\">0</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">return</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>domUtils<span class=\"k\">.</span>isEmptyBlock<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>body<span class=\"k\">))</span> <span class=\"k\">{</span>","                <span class=\"k\">return</span> <span class=\"k\">true</span>","            <span class=\"k\">}</span>","            <span class=\"c\">//&#38543;&#26102;&#28155;&#21152;,&#23450;&#20041;&#30340;&#29305;&#27530;&#26631;&#31614;&#22914;&#26524;&#23384;&#22312;&#65292;&#19981;&#33021;&#35748;&#20026;&#26159;&#31354;</span>","            tags <span class=\"k\">=</span> <span class=\"k\">[</span><span class=\"s\">'div'</span><span class=\"k\">];</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span>i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">;</span> ci <span class=\"k\">=</span> tags<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> nodes <span class=\"k\">=</span> domUtils<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">.</span>document<span class=\"k\">,</span> ci<span class=\"k\">);</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> n <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> cn<span class=\"k\">;</span> cn <span class=\"k\">=</span> nodes<span class=\"k\">[</span>n<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>domUtils<span class=\"k\">.</span>isCustomeNode<span class=\"k\">(</span>cn<span class=\"k\">))</span> <span class=\"k\">{</span>","                        <span class=\"k\">return</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                    <span class=\"k\">}</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> <span class=\"k\">false</span><span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#37325;&#32622;&#32534;&#36753;&#22120;&#65292;&#21487;&#29992;&#26469;&#20570;&#22810;&#20010;tab&#20351;&#29992;&#21516;&#19968;&#20010;&#32534;&#36753;&#22120;&#23454;&#20363;</span>","<span class=\"c\">         * @method  reset</span>","<span class=\"c\">         * @remind &#27492;&#26041;&#27861;&#20250;&#28165;&#31354;&#32534;&#36753;&#22120;&#20869;&#23481;&#65292;&#28165;&#31354;&#22238;&#36864;&#21015;&#34920;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.reset()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        reset<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'reset'</span><span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#21487;&#20197;&#32534;&#36753;</span>","<span class=\"c\">         * @method setEnabled</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setEnabled()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        setEnabled<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span> range<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">==</span> <span class=\"s\">'false'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">true</span><span class=\"k\">;</span>","                range <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","                <span class=\"c\">//&#26377;&#21487;&#33021;&#20869;&#23481;&#20002;&#22833;&#20102;</span>","                <span class=\"k\">try</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>moveToBookmark<span class=\"k\">(</span>me<span class=\"k\">.</span>lastBk<span class=\"k\">);</span>","                    <span class=\"k\">delete</span> me<span class=\"k\">.</span>lastBk","                <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>setStartAtFirst<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">).</span>collapse<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">)</span>","                <span class=\"k\">}</span>","                range<span class=\"k\">.</span>select<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>bkqueryCommandState<span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>queryCommandState <span class=\"k\">=</span> me<span class=\"k\">.</span>bkqueryCommandState<span class=\"k\">;</span>","                    <span class=\"k\">delete</span> me<span class=\"k\">.</span>bkqueryCommandState<span class=\"k\">;</span>","                <span class=\"k\">}</span>","                me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'selectionchange'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#21487;&#20197;&#32534;&#36753;</span>","<span class=\"c\">         * @method enable</span>","<span class=\"c\">         * @return { * } &#36820;&#22238;setEnabled&#26041;&#27861;&#30340;&#36820;&#22238;&#20540;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.enable()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         * @see UE.Editor:setEnabled()</span>","<span class=\"c\">         */</span>","        enable<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>setEnabled<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;</span>","<span class=\"c\">         * @method setDisabled</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;,except&#20013;&#30340;&#21629;&#20196;&#38500;&#22806;</span>","<span class=\"c\">         * @method setDisabled</span>","<span class=\"c\">         * @param { String } except &#20363;&#22806;&#21629;&#20196;&#30340;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @remind &#21363;&#20351;&#35774;&#32622;&#20102;disable&#65292;&#27492;&#22788;&#37197;&#32622;&#30340;&#20363;&#22806;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setDisabled('bold'); //&#31105;&#29992;&#24037;&#20855;&#26639;&#20013;&#38500;&#21152;&#31895;&#20043;&#22806;&#30340;&#25152;&#26377;&#21151;&#33021;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;,except&#20013;&#30340;&#21629;&#20196;&#38500;&#22806;</span>","<span class=\"c\">         * @method setDisabled</span>","<span class=\"c\">         * @param { Array } except &#23383;&#31526;&#20018;&#25968;&#32452;&#65292;&#25968;&#32452;&#20013;&#30340;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @remind &#21363;&#20351;&#35774;&#32622;&#20102;disable&#65292;&#27492;&#22788;&#37197;&#32622;&#30340;&#20363;&#22806;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.setDisabled(['bold','insertimage']); //&#31105;&#29992;&#24037;&#20855;&#26639;&#20013;&#38500;&#21152;&#31895;&#21644;&#25554;&#20837;&#22270;&#29255;&#20043;&#22806;&#30340;&#25152;&#26377;&#21151;&#33021;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        setDisabled<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>except<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            except <span class=\"k\">=</span> except <span class=\"k\">?</span> utils<span class=\"k\">.</span>isArray<span class=\"k\">(</span>except<span class=\"k\">)</span> <span class=\"k\">?</span> except <span class=\"k\">:</span> <span class=\"k\">[</span>except<span class=\"k\">]</span> <span class=\"k\">:</span> <span class=\"k\">[];</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">==</span> <span class=\"s\">'true'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>me<span class=\"k\">.</span>lastBk<span class=\"k\">)</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>lastBk <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">().</span>createBookmark<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span>","                me<span class=\"k\">.</span>body<span class=\"k\">.</span>contentEditable <span class=\"k\">=</span> <span class=\"k\">false</span><span class=\"k\">;</span>","                me<span class=\"k\">.</span>bkqueryCommandState <span class=\"k\">=</span> me<span class=\"k\">.</span>queryCommandState<span class=\"k\">;</span>","                me<span class=\"k\">.</span>queryCommandState <span class=\"k\">=</span> <span class=\"k\">function</span> <span class=\"k\">(</span>type<span class=\"k\">)</span> <span class=\"k\">{</span>","                    <span class=\"k\">if</span> <span class=\"k\">(</span>utils<span class=\"k\">.</span>indexOf<span class=\"k\">(</span>except<span class=\"k\">,</span> type<span class=\"k\">)</span> <span class=\"k\">!=</span> <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                        <span class=\"k\">return</span> me<span class=\"k\">.</span>bkqueryCommandState<span class=\"k\">.</span>apply<span class=\"k\">(</span>me<span class=\"k\">,</span> arguments<span class=\"k\">);</span>","                    <span class=\"k\">}</span>","                    <span class=\"k\">return</span> <span class=\"k\">-</span><span class=\"s\">1</span><span class=\"k\">;</span>","                <span class=\"k\">}</span><span class=\"k\">;</span>","                me<span class=\"k\">.</span>fireEvent<span class=\"k\">(</span><span class=\"s\">'selectionchange'</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;</span>","<span class=\"c\">         * @method disable</span>","<span class=\"c\">         * @see UE.Editor:setEnabled()</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;,except&#20013;&#30340;&#21629;&#20196;&#38500;&#22806;</span>","<span class=\"c\">         * @method disable</span>","<span class=\"c\">         * @param { String } except &#20363;&#22806;&#21629;&#20196;&#30340;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @remind &#21363;&#20351;&#35774;&#32622;&#20102;disable&#65292;&#27492;&#22788;&#37197;&#32622;&#30340;&#20363;&#22806;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.disable('bold'); //&#31105;&#29992;&#24037;&#20855;&#26639;&#20013;&#38500;&#21152;&#31895;&#20043;&#22806;&#30340;&#25152;&#26377;&#21151;&#33021;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         * @see UE.Editor:setEnabled(String)</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/** &#35774;&#32622;&#24403;&#21069;&#32534;&#36753;&#21306;&#22495;&#19981;&#21487;&#32534;&#36753;,except&#20013;&#30340;&#21629;&#20196;&#38500;&#22806;</span>","<span class=\"c\">         * @method disable</span>","<span class=\"c\">         * @param { Array } except &#23383;&#31526;&#20018;&#25968;&#32452;&#65292;&#25968;&#32452;&#20013;&#30340;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @remind &#21363;&#20351;&#35774;&#32622;&#20102;disable&#65292;&#27492;&#22788;&#37197;&#32622;&#30340;&#20363;&#22806;&#21629;&#20196;&#20173;&#28982;&#21487;&#20197;&#25191;&#34892;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.disable(['bold','insertimage']); //&#31105;&#29992;&#24037;&#20855;&#26639;&#20013;&#38500;&#21152;&#31895;&#21644;&#25554;&#20837;&#22270;&#29255;&#20043;&#22806;&#30340;&#25152;&#26377;&#21151;&#33021;</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         * @see UE.Editor:setEnabled(Array)</span>","<span class=\"c\">         */</span>","        disable<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>except<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>setDisabled<span class=\"k\">(</span>except<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35774;&#32622;&#40664;&#35748;&#20869;&#23481;</span>","<span class=\"c\">         * @method _setDefaultContent</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         * @param  { String } cont &#35201;&#23384;&#20837;&#30340;&#20869;&#23481;</span>","<span class=\"c\">         */</span>","        _setDefaultContent<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">function</span> clear<span class=\"k\">()</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","                <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>document<span class=\"k\">.</span>getElementById<span class=\"k\">(</span><span class=\"s\">'initContent'</span><span class=\"k\">))</span> <span class=\"k\">{</span>","                    me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">'&lt;p&gt;'</span> <span class=\"k\">+</span> <span class=\"k\">(</span>ie <span class=\"k\">?</span> <span class=\"s\">''</span> <span class=\"k\">:</span> <span class=\"s\">'&lt;br/&gt;'</span><span class=\"k\">)</span> <span class=\"k\">+</span> <span class=\"s\">'&lt;/p&gt;'</span><span class=\"k\">;</span>","                    me<span class=\"k\">.</span>removeListener<span class=\"k\">(</span><span class=\"s\">'firstBeforeExecCommand focus'</span><span class=\"k\">,</span> clear<span class=\"k\">);</span>","                    setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                        me<span class=\"k\">.</span>focus<span class=\"k\">();</span>","                        me<span class=\"k\">.</span>_selectionChange<span class=\"k\">();</span>","                    <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"s\">0</span><span class=\"k\">)</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","","            <span class=\"k\">return</span> <span class=\"k\">function</span> <span class=\"k\">(</span>cont<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","                me<span class=\"k\">.</span>body<span class=\"k\">.</span>innerHTML <span class=\"k\">=</span> <span class=\"s\">'&lt;p id=\"initContent\"&gt;'</span> <span class=\"k\">+</span> cont <span class=\"k\">+</span> <span class=\"s\">'&lt;/p&gt;'</span><span class=\"k\">;</span>","","                me<span class=\"k\">.</span>addListener<span class=\"k\">(</span><span class=\"s\">'firstBeforeExecCommand focus'</span><span class=\"k\">,</span> clear<span class=\"k\">);</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">(),</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26174;&#31034;&#32534;&#36753;&#22120;&#65292;show&#26041;&#27861;&#30340;&#20860;&#23481;&#29256;&#26412;</span>","<span class=\"c\">         * @method setShow</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         */</span>","        setShow<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">,</span> range <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">();</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>me<span class=\"k\">.</span>container<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">==</span> <span class=\"s\">'none'</span><span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"c\">//&#26377;&#21487;&#33021;&#20869;&#23481;&#20002;&#22833;&#20102;</span>","                <span class=\"k\">try</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>moveToBookmark<span class=\"k\">(</span>me<span class=\"k\">.</span>lastBk<span class=\"k\">);</span>","                    <span class=\"k\">delete</span> me<span class=\"k\">.</span>lastBk","                <span class=\"k\">}</span> <span class=\"k\">catch</span> <span class=\"k\">(</span>e<span class=\"k\">)</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>setStartAtFirst<span class=\"k\">(</span>me<span class=\"k\">.</span>body<span class=\"k\">).</span>collapse<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">)</span>","                <span class=\"k\">}</span>","                <span class=\"c\">//ie&#19979;focus&#23454;&#25928;&#65292;&#25152;&#20197;&#20570;&#20102;&#20010;&#24310;&#36831;</span>","                setTimeout<span class=\"k\">(</span><span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","                    range<span class=\"k\">.</span>select<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","                <span class=\"k\">}</span><span class=\"k\">,</span> <span class=\"s\">100</span><span class=\"k\">);</span>","                me<span class=\"k\">.</span>container<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">''</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26174;&#31034;&#32534;&#36753;&#22120;</span>","<span class=\"c\">         * @method show</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.show()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         * @see UE.Editor:setShow(String)</span>","<span class=\"c\">         */</span>","        show<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>setShow<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#38544;&#34255;&#32534;&#36753;&#22120;&#65292;hide&#26041;&#27861;&#30340;&#20860;&#23481;&#29256;&#26412;</span>","<span class=\"c\">         * @method setHide</span>","<span class=\"c\">         * @private</span>","<span class=\"c\">         */</span>","        setHide<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> me <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>me<span class=\"k\">.</span>lastBk<span class=\"k\">)</span> <span class=\"k\">{</span>","                me<span class=\"k\">.</span>lastBk <span class=\"k\">=</span> me<span class=\"k\">.</span>selection<span class=\"k\">.</span>getRange<span class=\"k\">().</span>createBookmark<span class=\"k\">(</span><span class=\"k\">true</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            me<span class=\"k\">.</span>container<span class=\"k\">.</span>style<span class=\"k\">.</span>display <span class=\"k\">=</span> <span class=\"s\">'none'</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#38544;&#34255;&#32534;&#36753;&#22120;</span>","<span class=\"c\">         * @method hide</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.hide()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         * @see UE.Editor:setHide()</span>","<span class=\"c\">         */</span>","        hide<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">()</span> <span class=\"k\">{</span>","            <span class=\"k\">return</span> <span class=\"k\">this</span><span class=\"k\">.</span>setHide<span class=\"k\">();</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#25351;&#23450;&#30340;&#36335;&#24452;&#65292;&#33719;&#21462;&#23545;&#24212;&#30340;&#35821;&#35328;&#36164;&#28304;</span>","<span class=\"c\">         * @method getLang</span>","<span class=\"c\">         * @param { String } path &#36335;&#24452;&#26681;&#25454;&#30340;&#26159;lang&#30446;&#24405;&#19979;&#30340;&#35821;&#35328;&#25991;&#20214;&#30340;&#36335;&#24452;&#32467;&#26500;</span>","<span class=\"c\">         * @return { KeyValueMap | String } &#26681;&#25454;&#36335;&#24452;&#36820;&#22238;&#35821;&#35328;&#36164;&#28304;&#30340;Json&#26684;&#24335;&#23545;&#35937;&#25110;&#32773;&#35821;&#35328;&#23383;&#31526;&#20018;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getLang('contextMenu.delete'); //&#22914;&#26524;&#24403;&#21069;&#26159;&#20013;&#25991;&#65292;&#37027;&#36820;&#22238;&#26159;&#30340;&#26159;'&#21024;&#38500;'</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getLang<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>path<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> lang <span class=\"k\">=</span> UE<span class=\"k\">.</span>I18N<span class=\"k\">[</span><span class=\"k\">this</span><span class=\"k\">.</span>options<span class=\"k\">.</span>lang<span class=\"k\">];</span>","            <span class=\"k\">if</span> <span class=\"k\">(!</span>lang<span class=\"k\">)</span> <span class=\"k\">{</span>","                <span class=\"k\">throw</span> Error<span class=\"k\">(</span><span class=\"s\">\"not import language file\"</span><span class=\"k\">);</span>","            <span class=\"k\">}</span>","            path <span class=\"k\">=</span> <span class=\"k\">(</span>path <span class=\"k\">||</span> <span class=\"s\">\"\"</span><span class=\"k\">).</span>split<span class=\"k\">(</span><span class=\"s\">\".\"</span><span class=\"k\">);</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ci<span class=\"k\">;</span> ci <span class=\"k\">=</span> path<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                lang <span class=\"k\">=</span> lang<span class=\"k\">[</span>ci<span class=\"k\">];</span>","                <span class=\"k\">if</span> <span class=\"k\">(!</span>lang<span class=\"k\">)</span><span class=\"k\">break</span><span class=\"k\">;</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> lang<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35745;&#31639;&#32534;&#36753;&#22120;&#24403;&#21069;html&#20869;&#23481;&#30340;&#38271;&#24230;</span>","<span class=\"c\">         * @method  getContentLength</span>","<span class=\"c\">         * @return { Number } &#36820;&#22238;&#35745;&#31639;&#30340;&#38271;&#24230;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContentLength()</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35745;&#31639;&#32534;&#36753;&#22120;&#24403;&#21069;&#23384;&#25991;&#26412;&#20869;&#23481;&#30340;&#38271;&#24230;</span>","<span class=\"c\">         * @method  getContentLength</span>","<span class=\"c\">         * @param { Boolean } ingoneHtml &#20256;&#20837;true&#26102;&#65292;&#21482;&#25353;&#29031;&#32431;&#25991;&#26412;&#26469;&#35745;&#31639;</span>","<span class=\"c\">         * @return { Number } &#36820;&#22238;&#35745;&#31639;&#30340;&#38271;&#24230;&#65292;&#20869;&#23481;&#20013;&#26377;hr/img/iframe&#26631;&#31614;&#65292;&#38271;&#24230;&#21152;1</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContentLength(true)</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#35745;&#31639;&#32534;&#36753;&#22120;&#24403;&#21069;&#20869;&#23481;&#30340;&#38271;&#24230;</span>","<span class=\"c\">         * @method  getContentLength</span>","<span class=\"c\">         * @param { Boolean } ingoneHtml &#20256;&#20837;true&#26102;&#65292;&#21482;&#25353;&#29031;&#32431;&#25991;&#26412;&#26469;&#35745;&#31639;</span>","<span class=\"c\">         * @param { Array } tagNames &#24573;&#30053;html&#20195;&#30721;&#26102;&#65292;&#36935;&#21040;&#25968;&#32452;&#37324;&#30340;&#26631;&#31614;&#65292;&#38271;&#24230;&#21152;1</span>","<span class=\"c\">         * @return { Number } &#36820;&#22238;&#35745;&#31639;&#30340;&#38271;&#24230;&#65292;&#20869;&#23481;&#20013;&#26377;hr/img/iframe&#26631;&#31614;&#25110;&#32773;&#21442;&#25968;tagNames&#20013;&#30340;&#26631;&#31614;&#65292;&#38271;&#24230;&#21152;1</span>","<span class=\"c\">         * @remind &#24403;ingoneHtml&#20026;false&#65292;&#31532;&#20108;&#20010;&#21442;&#25968;&#19981;&#20316;&#29992;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.getContentLength(true, ['em','strong'])</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        getContentLength<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>ingoneHtml<span class=\"k\">,</span> tagNames<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">var</span> count <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getContent<span class=\"k\">(</span><span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">false</span><span class=\"k\">,</span> <span class=\"k\">true</span><span class=\"k\">).</span>length<span class=\"k\">;</span>","            <span class=\"k\">if</span> <span class=\"k\">(</span>ingoneHtml<span class=\"k\">)</span> <span class=\"k\">{</span>","                tagNames <span class=\"k\">=</span> <span class=\"k\">(</span>tagNames <span class=\"k\">||</span> <span class=\"k\">[]).</span>concat<span class=\"k\">([</span> <span class=\"s\">'hr'</span><span class=\"k\">,</span> <span class=\"s\">'img'</span><span class=\"k\">,</span> <span class=\"s\">'iframe'</span><span class=\"k\">]);</span>","                count <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>getContentTxt<span class=\"k\">().</span>replace<span class=\"k\">(</span><span class=\"s\">/[\\t\\r\\n]+/g</span><span class=\"k\">,</span> <span class=\"s\">''</span><span class=\"k\">).</span>length<span class=\"k\">;</span>","                <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ci<span class=\"k\">;</span> ci <span class=\"k\">=</span> tagNames<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                    count <span class=\"k\">+=</span> <span class=\"k\">this</span><span class=\"k\">.</span>document<span class=\"k\">.</span>getElementsByTagName<span class=\"k\">(</span>ci<span class=\"k\">).</span>length<span class=\"k\">;</span>","                <span class=\"k\">}</span>","            <span class=\"k\">}</span>","            <span class=\"k\">return</span> count<span class=\"k\">;</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#28155;&#21152;&#36755;&#20837;&#36807;&#28388;&#35268;&#21017;</span>","<span class=\"c\">         * @method  addInputRule</span>","<span class=\"c\">         * @param { Function } rule &#35201;&#28155;&#21152;&#30340;&#36807;&#28388;&#35268;&#21017;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.addInputRule(function(root){</span>","<span class=\"c\">         *   $.each(root.getNodesByTagName('div'),function(i,node){</span>","<span class=\"c\">         *       node.tagName=\"p\";</span>","<span class=\"c\">         *   });</span>","<span class=\"c\">         * });</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        addInputRule<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>rule<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>inputRules<span class=\"k\">.</span>push<span class=\"k\">(</span>rule<span class=\"k\">);</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#36755;&#20837;&#36807;&#28388;&#35268;&#21017;&#65292;&#36807;&#28388;&#32534;&#36753;&#22120;&#20869;&#23481;</span>","<span class=\"c\">         * @method  filterInputRule</span>","<span class=\"c\">         * @param { UE.uNode } root &#35201;&#36807;&#28388;&#30340;uNode&#33410;&#28857;</span>","<span class=\"c\">         * @remind &#25191;&#34892;editor.setContent&#26041;&#27861;&#21644;&#25191;&#34892;'inserthtml'&#21629;&#20196;&#21518;&#65292;&#20250;&#36816;&#34892;&#35813;&#36807;&#28388;&#20989;&#25968;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.filterInputRule(editor.body);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        filterInputRule<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ci<span class=\"k\">;</span> ci <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>inputRules<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                ci<span class=\"k\">.</span>call<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span> root<span class=\"k\">)</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#28155;&#21152;&#36755;&#20986;&#36807;&#28388;&#35268;&#21017;</span>","<span class=\"c\">         * @method  addOutputRule</span>","<span class=\"c\">         * @param { Function } rule &#35201;&#28155;&#21152;&#30340;&#36807;&#28388;&#35268;&#21017;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.addOutputRule(function(root){</span>","<span class=\"c\">         *   $.each(root.getNodesByTagName('p'),function(i,node){</span>","<span class=\"c\">         *       node.tagName=\"div\";</span>","<span class=\"c\">         *   });</span>","<span class=\"c\">         * });</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        addOutputRule<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>rule<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">this</span><span class=\"k\">.</span>outputRules<span class=\"k\">.</span>push<span class=\"k\">(</span>rule<span class=\"k\">)</span>","        <span class=\"k\">}</span><span class=\"k\">,</span>","","        <span class=\"c\">/**</span>","<span class=\"c\">         * &#26681;&#25454;&#36755;&#20986;&#36807;&#28388;&#35268;&#21017;&#65292;&#36807;&#28388;&#32534;&#36753;&#22120;&#20869;&#23481;</span>","<span class=\"c\">         * @method  filterOutputRule</span>","<span class=\"c\">         * @remind &#25191;&#34892;editor.getContent&#26041;&#27861;&#30340;&#26102;&#20505;&#65292;&#20250;&#20808;&#36816;&#34892;&#35813;&#36807;&#28388;&#20989;&#25968;</span>","<span class=\"c\">         * @param { UE.uNode } root &#35201;&#36807;&#28388;&#30340;uNode&#33410;&#28857;</span>","<span class=\"c\">         * @example</span>","<span class=\"c\">         * ```javascript</span>","<span class=\"c\">         * editor.filterOutputRule(editor.body);</span>","<span class=\"c\">         * ```</span>","<span class=\"c\">         */</span>","        filterOutputRule<span class=\"k\">:</span> <span class=\"k\">function</span> <span class=\"k\">(</span>root<span class=\"k\">)</span> <span class=\"k\">{</span>","            <span class=\"k\">for</span> <span class=\"k\">(</span><span class=\"k\">var</span> i <span class=\"k\">=</span> <span class=\"s\">0</span><span class=\"k\">,</span> ci<span class=\"k\">;</span> ci <span class=\"k\">=</span> <span class=\"k\">this</span><span class=\"k\">.</span>outputRules<span class=\"k\">[</span>i<span class=\"k\">++];)</span> <span class=\"k\">{</span>","                ci<span class=\"k\">.</span>call<span class=\"k\">(</span><span class=\"k\">this</span><span class=\"k\">,</span> root<span class=\"k\">)</span>","            <span class=\"k\">}</span>","        <span class=\"k\">}</span>","    <span class=\"k\">}</span><span class=\"k\">;</span>","    utils<span class=\"k\">.</span>inherits<span class=\"k\">(</span>Editor<span class=\"k\">,</span> EventBase<span class=\"k\">);</span>","<span class=\"k\">}</span><span class=\"k\">)();</span>"];
_$jscoverage['core/Editor.js'][22]++;
(function () {
  _$jscoverage['core/Editor.js'][23]++;
  var uid = 0, _selectionChangeTimer;
  _$jscoverage['core/Editor.js'][32]++;
  function setValue(form, editor) {
    _$jscoverage['core/Editor.js'][33]++;
    var textarea;
    _$jscoverage['core/Editor.js'][34]++;
    if (editor.textarea) {
      _$jscoverage['core/Editor.js'][35]++;
      if (utils.isString(editor.textarea)) {
        _$jscoverage['core/Editor.js'][36]++;
        for (var i = 0, ti, tis = domUtils.getElementsByTagName(form, "textarea"); (ti = tis[(i++)]);) {
          _$jscoverage['core/Editor.js'][37]++;
          if ((ti.id == ("ueditor_textarea_" + editor.options.textarea))) {
            _$jscoverage['core/Editor.js'][38]++;
            textarea = ti;
            _$jscoverage['core/Editor.js'][39]++;
            break;
          }
}
      }
      else {
        _$jscoverage['core/Editor.js'][43]++;
        textarea = editor.textarea;
      }
    }
    _$jscoverage['core/Editor.js'][46]++;
    if ((! textarea)) {
      _$jscoverage['core/Editor.js'][47]++;
      form.appendChild((textarea = domUtils.createElement(document, "textarea", {"name": editor.options.textarea, "id": ("ueditor_textarea_" + editor.options.textarea), "style": "display:none"})));
      _$jscoverage['core/Editor.js'][53]++;
      editor.textarea = textarea;
    }
    _$jscoverage['core/Editor.js'][55]++;
    textarea.value = (editor.hasContents()? (editor.options.allHtmlEnabled? editor.getAllHtml(): editor.getContent(null, null, true)): "");
}
  _$jscoverage['core/Editor.js'][66]++;
  function loadPlugins(me) {
    _$jscoverage['core/Editor.js'][68]++;
    for (var pi in UE.plugins) {
      _$jscoverage['core/Editor.js'][69]++;
      UE.plugins[pi].call(me);
}
    _$jscoverage['core/Editor.js'][71]++;
    me.langIsReady = true;
    _$jscoverage['core/Editor.js'][73]++;
    me.fireEvent("langReady");
}
  _$jscoverage['core/Editor.js'][82]++;
  function checkCurLang(I18N) {
    _$jscoverage['core/Editor.js'][83]++;
    for (var lang in I18N) {
      _$jscoverage['core/Editor.js'][84]++;
      return lang;
}
}
  _$jscoverage['core/Editor.js'][135]++;
  var Editor = (UE.Editor = (function (options) {
  _$jscoverage['core/Editor.js'][136]++;
  var me = this;
  _$jscoverage['core/Editor.js'][137]++;
  me.uid = (uid++);
  _$jscoverage['core/Editor.js'][138]++;
  EventBase.call(me);
  _$jscoverage['core/Editor.js'][139]++;
  me.commands = {};
  _$jscoverage['core/Editor.js'][140]++;
  me.options = utils.extend(utils.clone((options || {})), UEDITOR_CONFIG, true);
  _$jscoverage['core/Editor.js'][141]++;
  me.shortcutkeys = {};
  _$jscoverage['core/Editor.js'][142]++;
  me.inputRules = [];
  _$jscoverage['core/Editor.js'][143]++;
  me.outputRules = [];
  _$jscoverage['core/Editor.js'][145]++;
  me.setOpt({isShow: true, initialContent: "", initialStyle: "", autoClearinitialContent: false, iframeCssUrl: (me.options.UEDITOR_HOME_URL + "themes/iframe.css"), textarea: "editorValue", focus: false, focusInEnd: true, autoClearEmptyNode: true, fullscreen: false, readonly: false, zIndex: 999, imagePopup: true, enterTag: "p", customDomain: false, lang: "zh-cn", langPath: (me.options.UEDITOR_HOME_URL + "lang/"), theme: "default", themePath: (me.options.UEDITOR_HOME_URL + "themes/"), allHtmlEnabled: false, scaleEnabled: false, tableNativeEditInFF: false, autoSyncData: true});
  _$jscoverage['core/Editor.js'][171]++;
  if ((! utils.isEmptyObject(UE.I18N))) {
    _$jscoverage['core/Editor.js'][173]++;
    me.options.lang = checkCurLang(UE.I18N);
    _$jscoverage['core/Editor.js'][174]++;
    loadPlugins(me);
  }
  else {
    _$jscoverage['core/Editor.js'][176]++;
    utils.loadFile(document, {src: (me.options.langPath + me.options.lang + "/" + me.options.lang + ".js"), tag: "script", type: "text/javascript", defer: "defer"}, (function () {
  _$jscoverage['core/Editor.js'][182]++;
  loadPlugins(me);
}));
  }
  _$jscoverage['core/Editor.js'][186]++;
  UE.instants[("ueditorInstant" + me.uid)] = me;
}));
  _$jscoverage['core/Editor.js'][188]++;
  Editor.prototype = {ready: (function (fn) {
  _$jscoverage['core/Editor.js'][205]++;
  var me = this;
  _$jscoverage['core/Editor.js'][206]++;
  if (fn) {
    _$jscoverage['core/Editor.js'][207]++;
    (me.isReady? fn.apply(me): me.addListener("ready", fn));
  }
}), setOpt: (function (key, val) {
  _$jscoverage['core/Editor.js'][238]++;
  var obj = {};
  _$jscoverage['core/Editor.js'][239]++;
  if (utils.isString(key)) {
    _$jscoverage['core/Editor.js'][240]++;
    obj[key] = val;
  }
  else {
    _$jscoverage['core/Editor.js'][242]++;
    obj = key;
  }
  _$jscoverage['core/Editor.js'][244]++;
  utils.extend(this.options, obj, true);
}), destroy: (function () {
  _$jscoverage['core/Editor.js'][258]++;
  var me = this;
  _$jscoverage['core/Editor.js'][259]++;
  me.fireEvent("destroy");
  _$jscoverage['core/Editor.js'][260]++;
  var container = me.container.parentNode;
  _$jscoverage['core/Editor.js'][261]++;
  var textarea = me.textarea;
  _$jscoverage['core/Editor.js'][262]++;
  if ((! textarea)) {
    _$jscoverage['core/Editor.js'][263]++;
    textarea = document.createElement("textarea");
    _$jscoverage['core/Editor.js'][264]++;
    container.parentNode.insertBefore(textarea, container);
  }
  else {
    _$jscoverage['core/Editor.js'][266]++;
    textarea.style.display = "";
  }
  _$jscoverage['core/Editor.js'][269]++;
  textarea.style.width = (me.iframe.offsetWidth + "px");
  _$jscoverage['core/Editor.js'][270]++;
  textarea.style.height = (me.iframe.offsetHeight + "px");
  _$jscoverage['core/Editor.js'][271]++;
  textarea.value = me.getContent();
  _$jscoverage['core/Editor.js'][272]++;
  textarea.id = me.key;
  _$jscoverage['core/Editor.js'][273]++;
  container.innerHTML = "";
  _$jscoverage['core/Editor.js'][274]++;
  domUtils.remove(container);
  _$jscoverage['core/Editor.js'][275]++;
  var key = me.key;
  _$jscoverage['core/Editor.js'][277]++;
  for (var p in me) {
    _$jscoverage['core/Editor.js'][278]++;
    if (me.hasOwnProperty(p)) {
      _$jscoverage['core/Editor.js'][279]++;
      (delete this[p]);
    }
}
  _$jscoverage['core/Editor.js'][282]++;
  UE.delEditor(key);
}), render: (function (container) {
  _$jscoverage['core/Editor.js'][299]++;
  var me = this, options = me.options, getStyleValue = (function (attr) {
  _$jscoverage['core/Editor.js'][302]++;
  return parseInt(domUtils.getComputedStyle(container, attr));
});
  _$jscoverage['core/Editor.js'][304]++;
  if (utils.isString(container)) {
    _$jscoverage['core/Editor.js'][305]++;
    container = document.getElementById(container);
  }
  _$jscoverage['core/Editor.js'][307]++;
  if (container) {
    _$jscoverage['core/Editor.js'][308]++;
    if (options.initialFrameWidth) {
      _$jscoverage['core/Editor.js'][309]++;
      options.minFrameWidth = options.initialFrameWidth;
    }
    else {
      _$jscoverage['core/Editor.js'][311]++;
      options.minFrameWidth = (options.initialFrameWidth = container.offsetWidth);
    }
    _$jscoverage['core/Editor.js'][313]++;
    if (options.initialFrameHeight) {
      _$jscoverage['core/Editor.js'][314]++;
      options.minFrameHeight = options.initialFrameHeight;
    }
    else {
      _$jscoverage['core/Editor.js'][316]++;
      options.initialFrameHeight = (options.minFrameHeight = container.offsetHeight);
    }
    _$jscoverage['core/Editor.js'][319]++;
    container.style.width = (/%$/.test(options.initialFrameWidth)? "100%": ((options.initialFrameWidth - getStyleValue("padding-left") - getStyleValue("padding-right")) + "px"));
    _$jscoverage['core/Editor.js'][321]++;
    container.style.height = (/%$/.test(options.initialFrameHeight)? "100%": ((options.initialFrameHeight - getStyleValue("padding-top") - getStyleValue("padding-bottom")) + "px"));
    _$jscoverage['core/Editor.js'][324]++;
    container.style.zIndex = options.zIndex;
    _$jscoverage['core/Editor.js'][326]++;
    var html = (((ie && (browser.version < 9))? "": "<!DOCTYPE html>") + "<html xmlns='http://www.w3.org/1999/xhtml' class='view' ><head>" + "<style type='text/css'>" + ".view{padding:0;word-wrap:break-word;cursor:text;height:90%;}\n" + "body{margin:8px;font-family:sans-serif;font-size:16px;}" + "p{margin:5px 0;}</style>" + (options.iframeCssUrl? ("<link rel='stylesheet' type='text/css' href='" + utils.unhtml(options.iframeCssUrl) + "'/>"): "") + (options.initialStyle? ("<style>" + options.initialStyle + "</style>"): "") + "</head><body class='view' ></body>" + "<script type='text/javascript' " + (ie? "defer='defer'": "") + " id='_initialScript'>" + "setTimeout(function(){window.parent.UE.instants['ueditorInstant" + me.uid + "']._setup(document);},0);" + "var _tmpScript = document.getElementById('_initialScript');_tmpScript.parentNode.removeChild(_tmpScript);</script></html>");
    _$jscoverage['core/Editor.js'][342]++;
    container.appendChild(domUtils.createElement(document, "iframe", {id: ("ueditor_" + me.uid), width: "100%", height: "100%", frameborder: "0", src: ("javascript:void(function(){document.open();" + ((options.customDomain && (document.domain != location.hostname))? ("document.domain=\"" + document.domain + "\";"): "") + "document.write(\"" + html + "\");document.close();}())")}));
    _$jscoverage['core/Editor.js'][350]++;
    container.style.overflow = "hidden";
    _$jscoverage['core/Editor.js'][352]++;
    setTimeout((function () {
  _$jscoverage['core/Editor.js'][353]++;
  if (/%$/.test(options.initialFrameWidth)) {
    _$jscoverage['core/Editor.js'][354]++;
    options.minFrameWidth = (options.initialFrameWidth = container.offsetWidth);
    _$jscoverage['core/Editor.js'][355]++;
    container.style.width = (options.initialFrameWidth + "px");
  }
  _$jscoverage['core/Editor.js'][357]++;
  if (/%$/.test(options.initialFrameHeight)) {
    _$jscoverage['core/Editor.js'][358]++;
    options.minFrameHeight = (options.initialFrameHeight = container.offsetHeight);
    _$jscoverage['core/Editor.js'][359]++;
    container.style.height = (options.initialFrameHeight + "px");
  }
}));
  }
}), _setup: (function (doc) {
  _$jscoverage['core/Editor.js'][373]++;
  var me = this, options = me.options;
  _$jscoverage['core/Editor.js'][375]++;
  if (ie) {
    _$jscoverage['core/Editor.js'][376]++;
    doc.body.disabled = true;
    _$jscoverage['core/Editor.js'][377]++;
    doc.body.contentEditable = true;
    _$jscoverage['core/Editor.js'][378]++;
    doc.body.disabled = false;
  }
  else {
    _$jscoverage['core/Editor.js'][380]++;
    doc.body.contentEditable = true;
  }
  _$jscoverage['core/Editor.js'][382]++;
  doc.body.spellcheck = false;
  _$jscoverage['core/Editor.js'][383]++;
  me.document = doc;
  _$jscoverage['core/Editor.js'][384]++;
  me.window = (doc.defaultView || doc.parentWindow);
  _$jscoverage['core/Editor.js'][385]++;
  me.iframe = me.window.frameElement;
  _$jscoverage['core/Editor.js'][386]++;
  me.body = doc.body;
  _$jscoverage['core/Editor.js'][388]++;
  me.selection = new (dom.Selection)(doc);
  _$jscoverage['core/Editor.js'][390]++;
  var geckoSel;
  _$jscoverage['core/Editor.js'][391]++;
  if ((browser.gecko && (geckoSel = this.selection.getNative()))) {
    _$jscoverage['core/Editor.js'][392]++;
    geckoSel.removeAllRanges();
  }
  _$jscoverage['core/Editor.js'][394]++;
  this._initEvents();
  _$jscoverage['core/Editor.js'][396]++;
  for (var form = this.iframe.parentNode; (! domUtils.isBody(form)); (form = form.parentNode)) {
    _$jscoverage['core/Editor.js'][397]++;
    if ((form.tagName == "FORM")) {
      _$jscoverage['core/Editor.js'][398]++;
      me.form = form;
      _$jscoverage['core/Editor.js'][399]++;
      if (me.options.autoSyncData) {
        _$jscoverage['core/Editor.js'][400]++;
        domUtils.on(me.window, "blur", (function () {
  _$jscoverage['core/Editor.js'][401]++;
  setValue(form, me);
}));
      }
      else {
        _$jscoverage['core/Editor.js'][404]++;
        domUtils.on(form, "submit", (function () {
  _$jscoverage['core/Editor.js'][405]++;
  setValue(this, me);
}));
      }
      _$jscoverage['core/Editor.js'][408]++;
      break;
    }
}
  _$jscoverage['core/Editor.js'][411]++;
  if (options.initialContent) {
    _$jscoverage['core/Editor.js'][412]++;
    if (options.autoClearinitialContent) {
      _$jscoverage['core/Editor.js'][413]++;
      var oldExecCommand = me.execCommand;
      _$jscoverage['core/Editor.js'][414]++;
      me.execCommand = (function () {
  _$jscoverage['core/Editor.js'][415]++;
  me.fireEvent("firstBeforeExecCommand");
  _$jscoverage['core/Editor.js'][416]++;
  return oldExecCommand.apply(me, arguments);
});
      _$jscoverage['core/Editor.js'][418]++;
      this._setDefaultContent(options.initialContent);
    }
    else {
      _$jscoverage['core/Editor.js'][420]++;
      this.setContent(options.initialContent, false, true);
    }
  }
  _$jscoverage['core/Editor.js'][425]++;
  if (domUtils.isEmptyNode(me.body)) {
    _$jscoverage['core/Editor.js'][426]++;
    me.body.innerHTML = ("<p>" + (browser.ie? "": "<br/>") + "</p>");
  }
  _$jscoverage['core/Editor.js'][429]++;
  if (options.focus) {
    _$jscoverage['core/Editor.js'][430]++;
    setTimeout((function () {
  _$jscoverage['core/Editor.js'][431]++;
  me.focus(me.options.focusInEnd);
  _$jscoverage['core/Editor.js'][433]++;
  ((! me.options.autoClearinitialContent) && me._selectionChange());
}), 0);
  }
  _$jscoverage['core/Editor.js'][436]++;
  if ((! me.container)) {
    _$jscoverage['core/Editor.js'][437]++;
    me.container = this.iframe.parentNode;
  }
  _$jscoverage['core/Editor.js'][439]++;
  if ((options.fullscreen && me.ui)) {
    _$jscoverage['core/Editor.js'][440]++;
    me.ui.setFullScreen(true);
  }
  _$jscoverage['core/Editor.js'][443]++;
  try {
    _$jscoverage['core/Editor.js'][444]++;
    me.document.execCommand("2D-position", false, false);
  }
  catch (e) {
  }
  _$jscoverage['core/Editor.js'][447]++;
  try {
    _$jscoverage['core/Editor.js'][448]++;
    me.document.execCommand("enableInlineTableEditing", false, false);
  }
  catch (e) {
  }
  _$jscoverage['core/Editor.js'][451]++;
  try {
    _$jscoverage['core/Editor.js'][452]++;
    me.document.execCommand("enableObjectResizing", false, false);
  }
  catch (e) {
  }
  _$jscoverage['core/Editor.js'][458]++;
  me._bindshortcutKeys();
  _$jscoverage['core/Editor.js'][459]++;
  me.isReady = 1;
  _$jscoverage['core/Editor.js'][460]++;
  me.fireEvent("ready");
  _$jscoverage['core/Editor.js'][461]++;
  (options.onready && options.onready.call(me));
  _$jscoverage['core/Editor.js'][462]++;
  if ((! browser.ie)) {
    _$jscoverage['core/Editor.js'][463]++;
    domUtils.on(me.window, ["blur", "focus"], (function (e) {
  _$jscoverage['core/Editor.js'][465]++;
  if ((e.type == "blur")) {
    _$jscoverage['core/Editor.js'][466]++;
    me._bakRange = me.selection.getRange();
    _$jscoverage['core/Editor.js'][467]++;
    try {
      _$jscoverage['core/Editor.js'][468]++;
      me._bakNativeRange = me.selection.getNative().getRangeAt(0);
      _$jscoverage['core/Editor.js'][469]++;
      me.selection.getNative().removeAllRanges();
    }
    catch (e) {
      _$jscoverage['core/Editor.js'][471]++;
      me._bakNativeRange = null;
    }
  }
  else {
    _$jscoverage['core/Editor.js'][475]++;
    try {
      _$jscoverage['core/Editor.js'][476]++;
      (me._bakRange && me._bakRange.select());
    }
    catch (e) {
    }
  }
}));
  }
  _$jscoverage['core/Editor.js'][483]++;
  if ((browser.gecko && (browser.version <= 10902))) {
    _$jscoverage['core/Editor.js'][485]++;
    me.body.contentEditable = false;
    _$jscoverage['core/Editor.js'][486]++;
    setTimeout((function () {
  _$jscoverage['core/Editor.js'][487]++;
  me.body.contentEditable = true;
}), 100);
    _$jscoverage['core/Editor.js'][489]++;
    setInterval((function () {
  _$jscoverage['core/Editor.js'][490]++;
  me.body.style.height = ((me.iframe.offsetHeight - 20) + "px");
}), 100);
  }
  _$jscoverage['core/Editor.js'][493]++;
  ((! options.isShow) && me.setHide());
  _$jscoverage['core/Editor.js'][494]++;
  (options.readonly && me.setDisabled());
}), sync: (function (formId) {
  _$jscoverage['core/Editor.js'][515]++;
  var me = this, form = (formId? document.getElementById(formId): domUtils.findParent(me.iframe.parentNode, (function (node) {
  _$jscoverage['core/Editor.js'][518]++;
  return (node.tagName == "FORM");
}), true));
  _$jscoverage['core/Editor.js'][520]++;
  (form && setValue(form, me));
}), setHeight: (function (height, notSetHeight) {
  _$jscoverage['core/Editor.js'][533]++;
  if ((height !== parseInt(this.iframe.parentNode.style.height))) {
    _$jscoverage['core/Editor.js'][534]++;
    this.iframe.parentNode.style.height = (height + "px");
  }
  _$jscoverage['core/Editor.js'][536]++;
  ((! notSetHeight) && (this.options.minFrameHeight = (this.options.initialFrameHeight = height)));
  _$jscoverage['core/Editor.js'][538]++;
  this.body.style.height = (height + "px");
}), addshortcutkey: (function (cmd, keys) {
  _$jscoverage['core/Editor.js'][564]++;
  var obj = {};
  _$jscoverage['core/Editor.js'][565]++;
  if (keys) {
    _$jscoverage['core/Editor.js'][566]++;
    obj[cmd] = keys;
  }
  else {
    _$jscoverage['core/Editor.js'][568]++;
    obj = cmd;
  }
  _$jscoverage['core/Editor.js'][570]++;
  utils.extend(this.shortcutkeys, obj);
}), _bindshortcutKeys: (function () {
  _$jscoverage['core/Editor.js'][579]++;
  var me = this, shortcutkeys = this.shortcutkeys;
  _$jscoverage['core/Editor.js'][580]++;
  me.addListener("keydown", (function (type, e) {
  _$jscoverage['core/Editor.js'][581]++;
  var keyCode = (e.keyCode || e.which);
  _$jscoverage['core/Editor.js'][582]++;
  for (var i in shortcutkeys) {
    _$jscoverage['core/Editor.js'][583]++;
    var tmp = shortcutkeys[i].split(",");
    _$jscoverage['core/Editor.js'][584]++;
    for (var t = 0, ti; (ti = tmp[(t++)]);) {
      _$jscoverage['core/Editor.js'][585]++;
      ti = ti.split(":");
      _$jscoverage['core/Editor.js'][586]++;
      var key = ti[0], param = ti[1];
      _$jscoverage['core/Editor.js'][587]++;
      if ((/^(ctrl)(\+shift)?\+(\d+)$/.test(key.toLowerCase()) || /^(\d+)$/.test(key))) {
        _$jscoverage['core/Editor.js'][588]++;
        if (((((RegExp.$1 == "ctrl")? (e.ctrlKey || e.metaKey): 0) && ((RegExp.$2 != "")? e[(RegExp.$2.slice(1) + "Key")]: 1) && (keyCode == RegExp.$3)) || (keyCode == RegExp.$1))) {
          _$jscoverage['core/Editor.js'][594]++;
          if ((me.queryCommandState(i, param) != -1)) {
            _$jscoverage['core/Editor.js'][595]++;
            me.execCommand(i, param);
          }
          _$jscoverage['core/Editor.js'][596]++;
          domUtils.preventDefault(e);
        }
      }
}
}
}));
}), getContent: (function (cmd, fn, notSetCursor, ignoreBlank, formatter) {
  _$jscoverage['core/Editor.js'][635]++;
  var me = this;
  _$jscoverage['core/Editor.js'][636]++;
  if ((cmd && utils.isFunction(cmd))) {
    _$jscoverage['core/Editor.js'][637]++;
    fn = cmd;
    _$jscoverage['core/Editor.js'][638]++;
    cmd = "";
  }
  _$jscoverage['core/Editor.js'][640]++;
  if ((fn? (! fn()): (! this.hasContents()))) {
    _$jscoverage['core/Editor.js'][641]++;
    return "";
  }
  _$jscoverage['core/Editor.js'][643]++;
  me.fireEvent("beforegetcontent");
  _$jscoverage['core/Editor.js'][644]++;
  var root = UE.htmlparser(me.body.innerHTML, ignoreBlank);
  _$jscoverage['core/Editor.js'][645]++;
  me.filterOutputRule(root);
  _$jscoverage['core/Editor.js'][646]++;
  me.fireEvent("aftergetcontent", cmd);
  _$jscoverage['core/Editor.js'][647]++;
  return root.toHtml(formatter);
}), getAllHtml: (function () {
  _$jscoverage['core/Editor.js'][660]++;
  var me = this, headHtml = [], html = "";
  _$jscoverage['core/Editor.js'][663]++;
  me.fireEvent("getAllHtml", headHtml);
  _$jscoverage['core/Editor.js'][664]++;
  if ((browser.ie && (browser.version > 8))) {
    _$jscoverage['core/Editor.js'][665]++;
    var headHtmlForIE9 = "";
    _$jscoverage['core/Editor.js'][666]++;
    utils.each(me.document.styleSheets, (function (si) {
  _$jscoverage['core/Editor.js'][667]++;
  headHtmlForIE9 += (si.href? ("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + si.href + "\" />"): ("<style>" + si.cssText + "</style>"));
}));
    _$jscoverage['core/Editor.js'][669]++;
    utils.each(me.document.getElementsByTagName("script"), (function (si) {
  _$jscoverage['core/Editor.js'][670]++;
  headHtmlForIE9 += si.outerHTML;
}));
  }
  _$jscoverage['core/Editor.js'][674]++;
  return ("<html><head>" + (me.options.charset? ("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=" + me.options.charset + "\"/>"): "") + (headHtmlForIE9 || me.document.getElementsByTagName("head")[0].innerHTML) + headHtml.join("\n") + "</head>" + "<body " + ((ie && (browser.version < 9))? "class=\"view\"": "") + ">" + me.getContent(null, null, true) + "</body></html>");
}), getPlainTxt: (function () {
  _$jscoverage['core/Editor.js'][689]++;
  var reg = new RegExp(domUtils.fillChar, "g"), html = this.body.innerHTML.replace(/[\n\r]/g, "");
  _$jscoverage['core/Editor.js'][691]++;
  html = html.replace(/<(p|div)[^>]*>(<br\/?>|&nbsp;)<\/\1>/gi, "\n").replace(/<br\/?>/gi, "\n").replace(/<[^>/]+>/g, "").replace(/(\n)?<\/([^>]+)>/g, (function (a, b, c) {
  _$jscoverage['core/Editor.js'][695]++;
  return (dtd.$block[c]? "\n": (b? b: ""));
}));
  _$jscoverage['core/Editor.js'][698]++;
  return html.replace(reg, "").replace(/\u00a0/g, " ").replace(/&nbsp;/g, " ");
}), getContentTxt: (function () {
  _$jscoverage['core/Editor.js'][711]++;
  var reg = new RegExp(domUtils.fillChar, "g");
  _$jscoverage['core/Editor.js'][713]++;
  return this.body[(browser.ie? "innerText": "textContent")].replace(reg, "").replace(/\u00a0/g, " ");
}), setContent: (function (html, isAppendTo, notFireSelectionchange) {
  _$jscoverage['core/Editor.js'][755]++;
  var me = this;
  _$jscoverage['core/Editor.js'][757]++;
  me.fireEvent("beforesetcontent", html);
  _$jscoverage['core/Editor.js'][758]++;
  var root = UE.htmlparser(html);
  _$jscoverage['core/Editor.js'][759]++;
  me.filterInputRule(root);
  _$jscoverage['core/Editor.js'][760]++;
  html = root.toHtml();
  _$jscoverage['core/Editor.js'][763]++;
  me.body.innerHTML = ((isAppendTo? me.body.innerHTML: "") + html);
  _$jscoverage['core/Editor.js'][766]++;
  function isCdataDiv(node) {
    _$jscoverage['core/Editor.js'][767]++;
    return ((node.tagName == "DIV") && node.getAttribute("cdata_tag"));
}
  _$jscoverage['core/Editor.js'][771]++;
  if ((me.options.enterTag == "p")) {
    _$jscoverage['core/Editor.js'][773]++;
    var child = this.body.firstChild, tmpNode;
    _$jscoverage['core/Editor.js'][774]++;
    if (((! child) || ((child.nodeType == 1) && (dtd.$cdata[child.tagName] || isCdataDiv(child) || domUtils.isCustomeNode(child)) && (child === this.body.lastChild)))) {
      _$jscoverage['core/Editor.js'][779]++;
      this.body.innerHTML = ("<p>" + (browser.ie? "&nbsp;": "<br/>") + "</p>" + this.body.innerHTML);
    }
    else {
      _$jscoverage['core/Editor.js'][782]++;
      var p = me.document.createElement("p");
      _$jscoverage['core/Editor.js'][783]++;
      while (child) {
        _$jscoverage['core/Editor.js'][784]++;
        while ((child && ((child.nodeType == 3) || ((child.nodeType == 1) && dtd.p[child.tagName] && (! dtd.$cdata[child.tagName]))))) {
          _$jscoverage['core/Editor.js'][785]++;
          tmpNode = child.nextSibling;
          _$jscoverage['core/Editor.js'][786]++;
          p.appendChild(child);
          _$jscoverage['core/Editor.js'][787]++;
          child = tmpNode;
}
        _$jscoverage['core/Editor.js'][789]++;
        if (p.firstChild) {
          _$jscoverage['core/Editor.js'][790]++;
          if ((! child)) {
            _$jscoverage['core/Editor.js'][791]++;
            me.body.appendChild(p);
            _$jscoverage['core/Editor.js'][792]++;
            break;
          }
          else {
            _$jscoverage['core/Editor.js'][794]++;
            child.parentNode.insertBefore(p, child);
            _$jscoverage['core/Editor.js'][795]++;
            p = me.document.createElement("p");
          }
        }
        _$jscoverage['core/Editor.js'][798]++;
        child = child.nextSibling;
}
    }
  }
  _$jscoverage['core/Editor.js'][802]++;
  me.fireEvent("aftersetcontent");
  _$jscoverage['core/Editor.js'][803]++;
  me.fireEvent("contentchange");
  _$jscoverage['core/Editor.js'][805]++;
  ((! notFireSelectionchange) && me._selectionChange());
  _$jscoverage['core/Editor.js'][807]++;
  me._bakRange = (me._bakIERange = (me._bakNativeRange = null));
  _$jscoverage['core/Editor.js'][809]++;
  var geckoSel;
  _$jscoverage['core/Editor.js'][810]++;
  if ((browser.gecko && (geckoSel = this.selection.getNative()))) {
    _$jscoverage['core/Editor.js'][811]++;
    geckoSel.removeAllRanges();
  }
  _$jscoverage['core/Editor.js'][813]++;
  if (me.options.autoSyncData) {
    _$jscoverage['core/Editor.js'][814]++;
    (me.form && setValue(me.form, me));
  }
}), focus: (function (toEnd) {
  _$jscoverage['core/Editor.js'][837]++;
  try {
    _$jscoverage['core/Editor.js'][838]++;
    var me = this, rng = me.selection.getRange();
    _$jscoverage['core/Editor.js'][840]++;
    if (toEnd) {
      _$jscoverage['core/Editor.js'][841]++;
      rng.setStartAtLast(me.body.lastChild).setCursor(false, true);
    }
    else {
      _$jscoverage['core/Editor.js'][843]++;
      rng.select(true);
    }
    _$jscoverage['core/Editor.js'][845]++;
    this.fireEvent("focus");
  }
  catch (e) {
  }
}), _initEvents: (function () {
  _$jscoverage['core/Editor.js'][856]++;
  var me = this, doc = me.document, win = me.window;
  _$jscoverage['core/Editor.js'][859]++;
  me._proxyDomEvent = utils.bind(me._proxyDomEvent, me);
  _$jscoverage['core/Editor.js'][860]++;
  domUtils.on(doc, ["click", "contextmenu", "mousedown", "keydown", "keyup", "keypress", "mouseup", "mouseover", "mouseout", "selectstart"], me._proxyDomEvent);
  _$jscoverage['core/Editor.js'][861]++;
  domUtils.on(win, ["focus", "blur"], me._proxyDomEvent);
  _$jscoverage['core/Editor.js'][862]++;
  domUtils.on(doc, ["mouseup", "keydown"], (function (evt) {
  _$jscoverage['core/Editor.js'][864]++;
  if (((evt.type == "keydown") && (evt.ctrlKey || evt.metaKey || evt.shiftKey || evt.altKey))) {
    _$jscoverage['core/Editor.js'][865]++;
    return;
  }
  _$jscoverage['core/Editor.js'][867]++;
  if ((evt.button == 2)) {
    _$jscoverage['core/Editor.js'][867]++;
    return;
  }
  _$jscoverage['core/Editor.js'][868]++;
  me._selectionChange(250, evt);
}));
}), _proxyDomEvent: (function (evt) {
  _$jscoverage['core/Editor.js'][921]++;
  return this.fireEvent(evt.type.replace(/^on/, ""), evt);
}), _selectionChange: (function (delay, evt) {
  _$jscoverage['core/Editor.js'][929]++;
  var me = this;
  _$jscoverage['core/Editor.js'][936]++;
  var hackForMouseUp = false;
  _$jscoverage['core/Editor.js'][937]++;
  var mouseX, mouseY;
  _$jscoverage['core/Editor.js'][938]++;
  if ((browser.ie && (browser.version < 9) && evt && (evt.type == "mouseup"))) {
    _$jscoverage['core/Editor.js'][939]++;
    var range = this.selection.getRange();
    _$jscoverage['core/Editor.js'][940]++;
    if ((! range.collapsed)) {
      _$jscoverage['core/Editor.js'][941]++;
      hackForMouseUp = true;
      _$jscoverage['core/Editor.js'][942]++;
      mouseX = evt.clientX;
      _$jscoverage['core/Editor.js'][943]++;
      mouseY = evt.clientY;
    }
  }
  _$jscoverage['core/Editor.js'][946]++;
  clearTimeout(_selectionChangeTimer);
  _$jscoverage['core/Editor.js'][947]++;
  _selectionChangeTimer = setTimeout((function () {
  _$jscoverage['core/Editor.js'][948]++;
  if ((! me.selection.getNative())) {
    _$jscoverage['core/Editor.js'][949]++;
    return;
  }
  _$jscoverage['core/Editor.js'][953]++;
  var ieRange;
  _$jscoverage['core/Editor.js'][954]++;
  if ((hackForMouseUp && (me.selection.getNative().type == "None"))) {
    _$jscoverage['core/Editor.js'][955]++;
    ieRange = me.document.body.createTextRange();
    _$jscoverage['core/Editor.js'][956]++;
    try {
      _$jscoverage['core/Editor.js'][957]++;
      ieRange.moveToPoint(mouseX, mouseY);
    }
    catch (ex) {
      _$jscoverage['core/Editor.js'][959]++;
      ieRange = null;
    }
  }
  _$jscoverage['core/Editor.js'][962]++;
  var bakGetIERange;
  _$jscoverage['core/Editor.js'][963]++;
  if (ieRange) {
    _$jscoverage['core/Editor.js'][964]++;
    bakGetIERange = me.selection.getIERange;
    _$jscoverage['core/Editor.js'][965]++;
    me.selection.getIERange = (function () {
  _$jscoverage['core/Editor.js'][966]++;
  return ieRange;
});
  }
  _$jscoverage['core/Editor.js'][969]++;
  me.selection.cache();
  _$jscoverage['core/Editor.js'][970]++;
  if (bakGetIERange) {
    _$jscoverage['core/Editor.js'][971]++;
    me.selection.getIERange = bakGetIERange;
  }
  _$jscoverage['core/Editor.js'][973]++;
  if ((me.selection._cachedRange && me.selection._cachedStartElement)) {
    _$jscoverage['core/Editor.js'][974]++;
    me.fireEvent("beforeselectionchange");
    _$jscoverage['core/Editor.js'][976]++;
    me.fireEvent("selectionchange", (! (! evt)));
    _$jscoverage['core/Editor.js'][977]++;
    me.fireEvent("afterselectionchange");
    _$jscoverage['core/Editor.js'][978]++;
    me.selection.clear();
  }
}), (delay || 50));
}), _callCmdFn: (function (fnName, args) {
  _$jscoverage['core/Editor.js'][992]++;
  var cmdName = args[0].toLowerCase(), cmd, cmdFn;
  _$jscoverage['core/Editor.js'][994]++;
  cmd = (this.commands[cmdName] || UE.commands[cmdName]);
  _$jscoverage['core/Editor.js'][995]++;
  cmdFn = (cmd && cmd[fnName]);
  _$jscoverage['core/Editor.js'][997]++;
  if ((((! cmd) || (! cmdFn)) && (fnName == "queryCommandState"))) {
    _$jscoverage['core/Editor.js'][998]++;
    return 0;
  }
  else {
    _$jscoverage['core/Editor.js'][999]++;
    if (cmdFn) {
      _$jscoverage['core/Editor.js'][1000]++;
      return cmdFn.apply(this, args);
    }
  }
}), execCommand: (function (cmdName) {
  _$jscoverage['core/Editor.js'][1014]++;
  cmdName = cmdName.toLowerCase();
  _$jscoverage['core/Editor.js'][1015]++;
  var me = this, result, cmd = (me.commands[cmdName] || UE.commands[cmdName]);
  _$jscoverage['core/Editor.js'][1018]++;
  if (((! cmd) || (! cmd.execCommand))) {
    _$jscoverage['core/Editor.js'][1019]++;
    return null;
  }
  _$jscoverage['core/Editor.js'][1021]++;
  if (((! cmd.notNeedUndo) && (! me.__hasEnterExecCommand))) {
    _$jscoverage['core/Editor.js'][1022]++;
    me.__hasEnterExecCommand = true;
    _$jscoverage['core/Editor.js'][1023]++;
    if ((me.queryCommandState.apply(me, arguments) != -1)) {
      _$jscoverage['core/Editor.js'][1024]++;
      me.fireEvent("beforeexeccommand", cmdName);
      _$jscoverage['core/Editor.js'][1025]++;
      result = this._callCmdFn("execCommand", arguments);
      _$jscoverage['core/Editor.js'][1026]++;
      ((! me._ignoreContentChange) && me.fireEvent("contentchange"));
      _$jscoverage['core/Editor.js'][1027]++;
      me.fireEvent("afterexeccommand", cmdName);
    }
    _$jscoverage['core/Editor.js'][1029]++;
    me.__hasEnterExecCommand = false;
  }
  else {
    _$jscoverage['core/Editor.js'][1031]++;
    result = this._callCmdFn("execCommand", arguments);
    _$jscoverage['core/Editor.js'][1032]++;
    ((! me._ignoreContentChange) && me.fireEvent("contentchange"));
  }
  _$jscoverage['core/Editor.js'][1034]++;
  ((! me._ignoreContentChange) && me._selectionChange());
  _$jscoverage['core/Editor.js'][1035]++;
  return result;
}), queryCommandState: (function (cmdName) {
  _$jscoverage['core/Editor.js'][1051]++;
  return this._callCmdFn("queryCommandState", arguments);
}), queryCommandValue: (function (cmdName) {
  _$jscoverage['core/Editor.js'][1062]++;
  return this._callCmdFn("queryCommandValue", arguments);
}), hasContents: (function (tags) {
  _$jscoverage['core/Editor.js'][1088]++;
  if (tags) {
    _$jscoverage['core/Editor.js'][1089]++;
    for (var i = 0, ci; (ci = tags[(i++)]);) {
      _$jscoverage['core/Editor.js'][1090]++;
      if ((this.document.getElementsByTagName(ci).length > 0)) {
        _$jscoverage['core/Editor.js'][1091]++;
        return true;
      }
}
  }
  _$jscoverage['core/Editor.js'][1095]++;
  if ((! domUtils.isEmptyBlock(this.body))) {
    _$jscoverage['core/Editor.js'][1096]++;
    return true;
  }
  _$jscoverage['core/Editor.js'][1099]++;
  tags = ["div"];
  _$jscoverage['core/Editor.js'][1100]++;
  for (i = 0; (ci = tags[(i++)]);) {
    _$jscoverage['core/Editor.js'][1101]++;
    var nodes = domUtils.getElementsByTagName(this.document, ci);
    _$jscoverage['core/Editor.js'][1102]++;
    for (var n = 0, cn; (cn = nodes[(n++)]);) {
      _$jscoverage['core/Editor.js'][1103]++;
      if (domUtils.isCustomeNode(cn)) {
        _$jscoverage['core/Editor.js'][1104]++;
        return true;
      }
}
}
  _$jscoverage['core/Editor.js'][1108]++;
  return false;
}), reset: (function () {
  _$jscoverage['core/Editor.js'][1121]++;
  this.fireEvent("reset");
}), setEnabled: (function () {
  _$jscoverage['core/Editor.js'][1133]++;
  var me = this, range;
  _$jscoverage['core/Editor.js'][1134]++;
  if ((me.body.contentEditable == "false")) {
    _$jscoverage['core/Editor.js'][1135]++;
    me.body.contentEditable = true;
    _$jscoverage['core/Editor.js'][1136]++;
    range = me.selection.getRange();
    _$jscoverage['core/Editor.js'][1138]++;
    try {
      _$jscoverage['core/Editor.js'][1139]++;
      range.moveToBookmark(me.lastBk);
      _$jscoverage['core/Editor.js'][1140]++;
      (delete me.lastBk);
    }
    catch (e) {
      _$jscoverage['core/Editor.js'][1142]++;
      range.setStartAtFirst(me.body).collapse(true);
    }
    _$jscoverage['core/Editor.js'][1144]++;
    range.select(true);
    _$jscoverage['core/Editor.js'][1145]++;
    if (me.bkqueryCommandState) {
      _$jscoverage['core/Editor.js'][1146]++;
      me.queryCommandState = me.bkqueryCommandState;
      _$jscoverage['core/Editor.js'][1147]++;
      (delete me.bkqueryCommandState);
    }
    _$jscoverage['core/Editor.js'][1149]++;
    me.fireEvent("selectionchange");
  }
}), enable: (function () {
  _$jscoverage['core/Editor.js'][1164]++;
  return this.setEnabled();
}), setDisabled: (function (except) {
  _$jscoverage['core/Editor.js'][1191]++;
  var me = this;
  _$jscoverage['core/Editor.js'][1192]++;
  except = (except? (utils.isArray(except)? except: [except]): []);
  _$jscoverage['core/Editor.js'][1193]++;
  if ((me.body.contentEditable == "true")) {
    _$jscoverage['core/Editor.js'][1194]++;
    if ((! me.lastBk)) {
      _$jscoverage['core/Editor.js'][1195]++;
      me.lastBk = me.selection.getRange().createBookmark(true);
    }
    _$jscoverage['core/Editor.js'][1197]++;
    me.body.contentEditable = false;
    _$jscoverage['core/Editor.js'][1198]++;
    me.bkqueryCommandState = me.queryCommandState;
    _$jscoverage['core/Editor.js'][1199]++;
    me.queryCommandState = (function (type) {
  _$jscoverage['core/Editor.js'][1200]++;
  if ((utils.indexOf(except, type) != -1)) {
    _$jscoverage['core/Editor.js'][1201]++;
    return me.bkqueryCommandState.apply(me, arguments);
  }
  _$jscoverage['core/Editor.js'][1203]++;
  return -1;
});
    _$jscoverage['core/Editor.js'][1205]++;
    me.fireEvent("selectionchange");
  }
}), disable: (function (except) {
  _$jscoverage['core/Editor.js'][1236]++;
  return this.setDisabled(except);
}), _setDefaultContent: (function () {
  _$jscoverage['core/Editor.js'][1246]++;
  function clear() {
    _$jscoverage['core/Editor.js'][1247]++;
    var me = this;
    _$jscoverage['core/Editor.js'][1248]++;
    if (me.document.getElementById("initContent")) {
      _$jscoverage['core/Editor.js'][1249]++;
      me.body.innerHTML = ("<p>" + (ie? "": "<br/>") + "</p>");
      _$jscoverage['core/Editor.js'][1250]++;
      me.removeListener("firstBeforeExecCommand focus", clear);
      _$jscoverage['core/Editor.js'][1251]++;
      setTimeout((function () {
  _$jscoverage['core/Editor.js'][1252]++;
  me.focus();
  _$jscoverage['core/Editor.js'][1253]++;
  me._selectionChange();
}), 0);
    }
}
  _$jscoverage['core/Editor.js'][1258]++;
  return (function (cont) {
  _$jscoverage['core/Editor.js'][1259]++;
  var me = this;
  _$jscoverage['core/Editor.js'][1260]++;
  me.body.innerHTML = ("<p id=\"initContent\">" + cont + "</p>");
  _$jscoverage['core/Editor.js'][1262]++;
  me.addListener("firstBeforeExecCommand focus", clear);
});
})(), setShow: (function () {
  _$jscoverage['core/Editor.js'][1272]++;
  var me = this, range = me.selection.getRange();
  _$jscoverage['core/Editor.js'][1273]++;
  if ((me.container.style.display == "none")) {
    _$jscoverage['core/Editor.js'][1275]++;
    try {
      _$jscoverage['core/Editor.js'][1276]++;
      range.moveToBookmark(me.lastBk);
      _$jscoverage['core/Editor.js'][1277]++;
      (delete me.lastBk);
    }
    catch (e) {
      _$jscoverage['core/Editor.js'][1279]++;
      range.setStartAtFirst(me.body).collapse(true);
    }
    _$jscoverage['core/Editor.js'][1282]++;
    setTimeout((function () {
  _$jscoverage['core/Editor.js'][1283]++;
  range.select(true);
}), 100);
    _$jscoverage['core/Editor.js'][1285]++;
    me.container.style.display = "";
  }
}), show: (function () {
  _$jscoverage['core/Editor.js'][1299]++;
  return this.setShow();
}), setHide: (function () {
  _$jscoverage['core/Editor.js'][1308]++;
  var me = this;
  _$jscoverage['core/Editor.js'][1309]++;
  if ((! me.lastBk)) {
    _$jscoverage['core/Editor.js'][1310]++;
    me.lastBk = me.selection.getRange().createBookmark(true);
  }
  _$jscoverage['core/Editor.js'][1312]++;
  me.container.style.display = "none";
}), hide: (function () {
  _$jscoverage['core/Editor.js'][1325]++;
  return this.setHide();
}), getLang: (function (path) {
  _$jscoverage['core/Editor.js'][1339]++;
  var lang = UE.I18N[this.options.lang];
  _$jscoverage['core/Editor.js'][1340]++;
  if ((! lang)) {
    _$jscoverage['core/Editor.js'][1341]++;
    throw Error("not import language file");
  }
  _$jscoverage['core/Editor.js'][1343]++;
  path = (path || "").split(".");
  _$jscoverage['core/Editor.js'][1344]++;
  for (var i = 0, ci; (ci = path[(i++)]);) {
    _$jscoverage['core/Editor.js'][1345]++;
    lang = lang[ci];
    _$jscoverage['core/Editor.js'][1346]++;
    if ((! lang)) {
      _$jscoverage['core/Editor.js'][1346]++;
      break;
    }
}
  _$jscoverage['core/Editor.js'][1348]++;
  return lang;
}), getContentLength: (function (ingoneHtml, tagNames) {
  _$jscoverage['core/Editor.js'][1385]++;
  var count = this.getContent(false, false, true).length;
  _$jscoverage['core/Editor.js'][1386]++;
  if (ingoneHtml) {
    _$jscoverage['core/Editor.js'][1387]++;
    tagNames = (tagNames || []).concat(["hr", "img", "iframe"]);
    _$jscoverage['core/Editor.js'][1388]++;
    count = this.getContentTxt().replace(/[\t\r\n]+/g, "").length;
    _$jscoverage['core/Editor.js'][1389]++;
    for (var i = 0, ci; (ci = tagNames[(i++)]);) {
      _$jscoverage['core/Editor.js'][1390]++;
      count += this.document.getElementsByTagName(ci).length;
}
  }
  _$jscoverage['core/Editor.js'][1393]++;
  return count;
}), addInputRule: (function (rule) {
  _$jscoverage['core/Editor.js'][1410]++;
  this.inputRules.push(rule);
}), filterInputRule: (function (root) {
  _$jscoverage['core/Editor.js'][1424]++;
  for (var i = 0, ci; (ci = this.inputRules[(i++)]);) {
    _$jscoverage['core/Editor.js'][1425]++;
    ci.call(this, root);
}
}), addOutputRule: (function (rule) {
  _$jscoverage['core/Editor.js'][1443]++;
  this.outputRules.push(rule);
}), filterOutputRule: (function (root) {
  _$jscoverage['core/Editor.js'][1457]++;
  for (var i = 0, ci; (ci = this.outputRules[(i++)]);) {
    _$jscoverage['core/Editor.js'][1458]++;
    ci.call(this, root);
}
})};
  _$jscoverage['core/Editor.js'][1462]++;
  utils.inherits(Editor, EventBase);
})();
