📄 edit_area_full.js
字号:
else{return (e!=null?e.y:event.y)+ document.documentElement.scrollTop;}};function calculeOffsetLeft(r){return calculeOffset(r,"offsetLeft") };function calculeOffsetTop(r){return calculeOffset(r,"offsetTop") };function calculeOffset(element,attr){var offset=0;while(element){offset+=element[attr];element=element.offsetParent}return offset;};function get_css_property(elem, prop){if(document.defaultView){return document.defaultView.getComputedStyle(elem, null).getPropertyValue(prop);}
else if(elem.currentStyle){var prop=prop.replace(/-\D/gi, function(sMatch){return sMatch.charAt(sMatch.length - 1).toUpperCase();});return elem.currentStyle[prop];}
else return null;}var move_current_element;function start_move_element(e, id, frame){var elem_id=(e.target || e.srcElement).id;if(id) elem_id=id;if(!frame) frame=window;if(frame.event) e=frame.event;move_current_element=frame.document.getElementById(elem_id);move_current_element.frame=frame;frame.document.onmousemove=move_element;frame.document.onmouseup=end_move_element;mouse_x=getMouseX(e);mouse_y=getMouseY(e);move_current_element.start_pos_x=mouse_x - (move_current_element.style.left.replace("px","") || calculeOffsetLeft(move_current_element));move_current_element.start_pos_y=mouse_y - (move_current_element.style.top.replace("px","") || calculeOffsetTop(move_current_element));return false;};function end_move_element(e){move_current_element.frame.document.onmousemove="";move_current_element.frame.document.onmouseup="";move_current_element=null;};function move_element(e){if(move_current_element.frame && move_current_element.frame.event) e=move_current_element.frame.event;var mouse_x=getMouseX(e);var mouse_y=getMouseY(e);var new_top=mouse_y - move_current_element.start_pos_y;var new_left=mouse_x - move_current_element.start_pos_x;var max_left=move_current_element.frame.document.body.offsetWidth- move_current_element.offsetWidth;max_top=move_current_element.frame.document.body.offsetHeight- move_current_element.offsetHeight;new_top=Math.min(Math.max(0, new_top), max_top);new_left=Math.min(Math.max(0, new_left), max_left);move_current_element.style.top=new_top+"px";move_current_element.style.left=new_left+"px";return false;};var nav=eAL.nav;function getSelectionRange(textarea){return {"start": textarea.selectionStart, "end": textarea.selectionEnd};};function setSelectionRange(textarea, start, end){textarea.focus();start=Math.max(0, Math.min(textarea.value.length, start));end=Math.max(start, Math.min(textarea.value.length, end));if(nav['isOpera']){textarea.selectionEnd=1;textarea.selectionStart=0;textarea.selectionEnd=1;textarea.selectionStart=0;}textarea.selectionStart=start;textarea.selectionEnd=end;if(nav['isIE']) set_IE_selection(textarea);};function get_IE_selection(textarea){if(textarea && textarea.focused){if(!textarea.ea_line_height){var div=document.createElement("div");div.style.fontFamily=get_css_property(textarea, "font-family");div.style.fontSize=get_css_property(textarea, "font-size");div.style.visibility="hidden";div.innerHTML="0";document.body.appendChild(div);textarea.ea_line_height=div.offsetHeight;document.body.removeChild(div);}var range=document.selection.createRange();var stored_range=range.duplicate();stored_range.moveToElementText( textarea );stored_range.setEndPoint( 'EndToEnd', range );if(stored_range.parentElement()==textarea){var elem=textarea;var scrollTop=0;while(elem.parentNode){scrollTop+=elem.scrollTop;elem=elem.parentNode;}var relative_top=range.offsetTop - calculeOffsetTop(textarea)+ scrollTop;var line_start=Math.round((relative_top / textarea.ea_line_height) +1);var line_nb=Math.round(range.boundingHeight / textarea.ea_line_height);var range_start=stored_range.text.length - range.text.length;var tab=textarea.value.substr(0, range_start).split("\n");range_start+=(line_start - tab.length)*2;textarea.selectionStart=range_start;var range_end=textarea.selectionStart + range.text.length;tab=textarea.value.substr(0, range_start + range.text.length).split("\n");range_end+=(line_start + line_nb - 1 - tab.length)*2;textarea.selectionEnd=range_end;}}setTimeout("get_IE_selection(document.getElementById('"+ textarea.id +"'));", 50);};function IE_textarea_focus(){event.srcElement.focused=true;}function IE_textarea_blur(){event.srcElement.focused=false;}function set_IE_selection(textarea){var nbLineStart=textarea.value.substr(0, textarea.selectionStart).split("\n").length - 1;var nbLineEnd=textarea.value.substr(0, textarea.selectionEnd).split("\n").length - 1;var range=document.selection.createRange();range.moveToElementText( textarea );range.setEndPoint( 'EndToStart', range );range.moveStart('character', textarea.selectionStart - nbLineStart);range.moveEnd('character', textarea.selectionEnd - nbLineEnd - (textarea.selectionStart - nbLineStart) );range.select();};eAL.waiting_loading["elements_functions.js"]="loaded";EAL.prototype.start_resize_area=function(){document.onmouseup=eAL.end_resize_area;document.onmousemove=eAL.resize_area;eAL.toggle(eAL.resize["id"]);var textarea=eAs[eAL.resize["id"]]["textarea"];var div=document.getElementById("edit_area_resize");if(!div){div=document.createElement("div");div.id="edit_area_resize";div.style.border="dashed #888888 1px";}var width=textarea.offsetWidth -2;var height=textarea.offsetHeight -2;div.style.display="block";div.style.width=width+"px";div.style.height=height+"px";var father=textarea.parentNode;father.insertBefore(div, textarea);textarea.style.display="none";eAL.resize["start_top"]=calculeOffsetTop(div);eAL.resize["start_left"]=calculeOffsetLeft(div);};EAL.prototype.end_resize_area=function(e){document.onmouseup="";document.onmousemove="";var div=document.getElementById("edit_area_resize");var textarea=eAs[eAL.resize["id"]]["textarea"];var width=Math.max(eAs[eAL.resize["id"]]["settings"]["min_width"], div.offsetWidth-4);var height=Math.max(eAs[eAL.resize["id"]]["settings"]["min_height"], div.offsetHeight-4);if(eAL.nav['isIE']==6){width-=2;height-=2;}textarea.style.width=width+"px";textarea.style.height=height+"px";div.style.display="none";textarea.style.display="inline";textarea.selectionStart=eAL.resize["selectionStart"];textarea.selectionEnd=eAL.resize["selectionEnd"];eAL.toggle(eAL.resize["id"]);return false;};EAL.prototype.resize_area=function(e){var allow=eAs[eAL.resize["id"]]["settings"]["allow_resize"];if(allow=="both" || allow=="y"){new_y=getMouseY(e);var new_height=Math.max(20, new_y- eAL.resize["start_top"]);document.getElementById("edit_area_resize").style.height=new_height+"px";}if(allow=="both" || allow=="x"){new_x=getMouseX(e);var new_width=Math.max(20, new_x- eAL.resize["start_left"]);document.getElementById("edit_area_resize").style.width=new_width+"px";}return false;};eAL.waiting_loading["resize_area.js"]="loaded";EAL.prototype.get_regexp=function(text_array){res="(\\b)(";for(i=0;i<text_array.length;i++){if(i>0) res+="|";res+=this.get_escaped_regexp(text_array[i]);}res+=")(\\b)";reg=new RegExp(res);return res;};EAL.prototype.get_escaped_regexp=function(str){return str.replace(/(\.|\?|\*|\+|\\|\(|\)|\[|\]|\}|\{|\$|\^|\|)/g, "\\$1");};EAL.prototype.init_syntax_regexp=function(){var lang_style=new Object();for(var lang in this.load_syntax){if(!this.syntax[lang]){this.syntax[lang]=new Object();this.syntax[lang]["keywords_reg_exp"]=new Object();this.keywords_reg_exp_nb=0;if(this.load_syntax[lang]['KEYWORDS']){param="g";if(this.load_syntax[lang]['KEYWORD_CASE_SENSITIVE']===false) param+="i";for(var i in this.load_syntax[lang]['KEYWORDS']){if(typeof(this.load_syntax[lang]['KEYWORDS'][i])=="function") continue;this.syntax[lang]["keywords_reg_exp"][i]=new RegExp(this.get_regexp( this.load_syntax[lang]['KEYWORDS'][i] ), param);this.keywords_reg_exp_nb++;}}if(this.load_syntax[lang]['OPERATORS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['OPERATORS']){if(typeof(this.load_syntax[lang]['OPERATORS'][i])=="function") continue;if(nb>0) str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['OPERATORS'][i]);nb++;}if(str.length>0) this.syntax[lang]["operators_reg_exp"]=new RegExp("("+str+")","g");}if(this.load_syntax[lang]['DELIMITERS']){var str="";var nb=0;for(var i in this.load_syntax[lang]['DELIMITERS']){if(typeof(this.load_syntax[lang]['DELIMITERS'][i])=="function") continue;if(nb>0) str+="|";str+=this.get_escaped_regexp(this.load_syntax[lang]['DELIMITERS'][i]);nb++;}if(str.length>0) this.syntax[lang]["delimiters_reg_exp"]=new RegExp("("+str+")","g");}var syntax_trace=new Array();this.syntax[lang]["quotes"]=new Object();var quote_tab=new Array();if(this.load_syntax[lang]['QUOTEMARKS']){for(var i in this.load_syntax[lang]['QUOTEMARKS']){if(typeof(this.load_syntax[lang]['QUOTEMARKS'][i])=="function") continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['QUOTEMARKS'][i]);this.syntax[lang]["quotes"][x]=x;quote_tab[quote_tab.length]="("+x+"(?:[^"+x+"\\\\]*(\\\\\\\\)*(\\\\"+x+"?)?)*("+x+"|$))";syntax_trace.push(x);}}this.syntax[lang]["comments"]=new Object();if(this.load_syntax[lang]['COMMENT_SINGLE']){for(var i in this.load_syntax[lang]['COMMENT_SINGLE']){if(typeof(this.load_syntax[lang]['COMMENT_SINGLE'][i])=="function") continue;var x=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_SINGLE'][i]);quote_tab[quote_tab.length]="("+x+"(.|\\r|\\t)*(\\n|$))";syntax_trace.push(x);this.syntax[lang]["comments"][x]="\n";}}if(this.load_syntax[lang]['COMMENT_MULTI']){for(var i in this.load_syntax[lang]['COMMENT_MULTI']){if(typeof(this.load_syntax[lang]['COMMENT_MULTI'][i])=="function") continue;var start=this.get_escaped_regexp(i);var end=this.get_escaped_regexp(this.load_syntax[lang]['COMMENT_MULTI'][i]);quote_tab[quote_tab.length]="("+start+"(.|\\n|\\r)*?("+end+"|$))";syntax_trace.push(start);syntax_trace.push(end);this.syntax[lang]["comments"][i]=this.load_syntax[lang]['COMMENT_MULTI'][i];}}if(quote_tab.length>0) this.syntax[lang]["comment_or_quote_reg_exp"]=new RegExp("("+quote_tab.join("|")+")","gi");if(syntax_trace.length>0) this.syntax[lang]["syntax_trace_regexp"]=new RegExp("((.|\n)*?)(\\\\*("+ syntax_trace.join("|") +"|$))", "gmi");if(this.load_syntax[lang]['SCRIPT_DELIMITERS']){this.syntax[lang]["script_delimiters"]=new Object();for(var i in this.load_syntax[lang]['SCRIPT_DELIMITERS']){if(typeof(this.load_syntax[lang]['SCRIPT_DELIMITERS'][i])=="function") continue;this.syntax[lang]["script_delimiters"][i]=this.load_syntax[lang]['SCRIPT_DELIMITERS'];}}this.syntax[lang]["custom_regexp"]=new Object();if(this.load_syntax[lang]['REGEXPS']){for(var i in this.load_syntax[lang]['REGEXPS']){if(typeof(this.load_syntax[lang]['REGEXPS'][i])=="function") continue;var val=this.load_syntax[lang]['REGEXPS'][i];if(!this.syntax[lang]["custom_regexp"][val['execute']]) this.syntax[lang]["custom_regexp"][val['execute']]=new Object();this.syntax[lang]["custom_regexp"][val['execute']][i]={'regexp' : new RegExp(val['search'], val['modifiers']) , 'class' : val['class']};}}if(this.load_syntax[lang]['STYLES']){lang_style[lang]=new Object();for(var i in this.load_syntax[lang]['STYLES']){if(typeof(this.load_syntax[lang]['STYLES'][i])=="function") continue;if(typeof(this.load_syntax[lang]['STYLES'][i]) !="string"){for(var j in this.load_syntax[lang]['STYLES'][i]){lang_style[lang][j]=this.load_syntax[lang]['STYLES'][i][j];}}
else{lang_style[lang][i]=this.load_syntax[lang]['STYLES'][i];}}}var style="";for(var i in lang_style[lang]){if(lang_style[lang][i].length>0){style+="."+ lang +" ."+ i.toLowerCase() +" span{"+lang_style[lang][i]+"}\n";style+="."+ lang +" ."+ i.toLowerCase() +"{"+lang_style[lang][i]+"}\n";}}this.syntax[lang]["styles"]=style;}}};eAL.waiting_loading["reg_syntax.js"]="loaded";
var editAreaLoader= eAL;var editAreas=eAs;EditAreaLoader=EAL;editAreaLoader.iframe_script= "<script language='Javascript' type='text/javascript'> function EA(){this.error=false;this.inlinePopup=new Array({popup_id: \"area_search_replace\", icon_id: \"search\"}, {popup_id: \"edit_area_help\", icon_id: \"help\"});this.plugins=new Object();this.line_number=0;this.nav=parent.eAL.nav;this.last_selection=new Object();this.last_text_to_highlight=\"\";this.last_hightlighted_text=\"\";this.textareaFocused=false;this.previous=new Array();this.next=new Array();this.last_undo=\"\";this.assocBracket=new Object();this.revertAssocBracket=new Object();this.assocBracket[\"(\"]=\")\";this.assocBracket[\"{\"]=\"}\";this.assocBracket[\"[\"]=\"]\";for(var index in this.assocBracket){this.revertAssocBracket[this.assocBracket[index]]=index;}this.lineHeight=16;this.tab_nb_char=8;if(this.nav['isOpera']) this.tab_nb_char=6;this.is_tabbing=false;this.fullscreen={'isFull': false};this.isResizing=false;this.id=area_id;this.settings=eAs[this.id][\"settings\"];if((\"\"+this.settings['replace_tab_by_spaces']).match(/^[0-9]+$/)){this.tab_nb_char=this.settings['replace_tab_by_spaces'];this.tabulation=\"\";for(var i=0;i<this.tab_nb_char;i++) this.tabulation+=\" \";}\nelse this.tabulation=\"\t\";};EA.prototype.update_size=function(){if(eAs[eA.id] && eAs[eA.id][\"displayed\"]==true){if(eA.fullscreen['isFull']){parent.document.getElementById(\"frame_\"+eA.id).style.width=parent.document.getElementsByTagName(\"html\")[0].clientWidth + \"px\";parent.document.getElementById(\"frame_\"+eA.id).style.height=parent.document.getElementsByTagName(\"html\")[0].clientHeight + \"px\";}var height=document.body.offsetHeight - eA.get_all_toolbar_height() - 4;eA.result.style.height=height +\"px\";var width=document.body.offsetWidth -2;eA.result.style.width=width+\"px\";for(var i=0;i<eA.inlinePopup.length;i++){var popup=document.getElementById(eA.inlinePopup[i][\"popup_id\"]);var max_left=document.body.offsetWidth- popup.offsetWidth;var max_top=document.body.offsetHeight- popup.offsetHeight;if(popup.offsetTop>max_top) popup.style.top=max_top+\"px\";if(popup.offsetLeft>max_left) popup.style.left=max_left+\"px\";}}};EA.prototype.init=function(){this.textarea=document.getElementById(\"textarea\");this.container=document.getElementById(\"container\");this.result=document.getElementById(\"result\");this.content_highlight=document.getElementById(\"content_highlight\");this.selection_field=document.getElementById(\"selection_field\");spans=parent.getChildren(document.getElementById(\"toolbar_1\"), \"span\", \"\", \"\", \"all\", -1);for(var i=0;i<spans.length;i++){id=spans[i].id.replace(/tmp_tool_(.*)/, \"$1\");if(id!=spans[i].id){for(var j in this.plugins){if(typeof(this.plugins[j].get_control_html)==\"function\" ){html=this.plugins[j].get_control_html(id);if(html!=false){html=parent.eAL.translate(html, this.settings[\"language\"], \"template\");var new_span=document.createElement(\"span\");new_span.innerHTML=html;var father=spans[i].parentNode;spans[i].parentNode.replaceChild(new_span, spans[i]);break;}}}}}this.textarea.value=eAs[this.id][\"textarea\"].value;if(this.settings[\"debug\"]) this.debug=parent.document.getElementById(\"edit_area_debug_\"+this.id);if(document.getElementById(\"redo\") !=null) this.switchClassSticky(document.getElementById(\"redo\"), 'editAreaButtonDisabled', true);if(typeof(parent.eAL.syntax[this.settings[\"syntax\"]])!=\"undefined\"){for(var i in parent.eAL.syntax){this.add_style(parent.eAL.syntax[i][\"styles\"]);}}if(this.nav['isOpera']) document.getElementById(\"editor\").onkeypress=keyDown;\nelse document.getElementById(\"editor\").onkeydown=keyDown;for(var i=0;i<this.inlinePopup.length;i++){if(this.nav['isIE'] || this.nav['isFirefox']) document.getElementById(this.inlinePopup[i][\"popup_id\"]).onkeydown=keyDown;\nelse document.getElementById(this.inlinePopup[i][\"popup_id\"]).onkeypress=keyDown;}if(this.settings[\"allow_resize\"]==\"both\" || this.settings[\"allow_resize\"]==\"x\" || this.settings[\"allow_resize\"]==\"y\") this.allow_resize(true);parent.eAL.toggle(this.id, \"on\");this.change_smooth_selection_mode(eA.smooth_selection);this.execCommand(\"change_highlight\", this.settings[\"start_highlight\"]);this.set_font(eA.settings[\"font_family\"], eA.settings[\"font_size\"]);children=parent.getChildren(document.body, \"\", \"selec\", \"none\", \"all\", -1);for(var i=0;i<children.length;i++){if(this.nav['isIE']) children[i].unselectable=true;\nelse children[i].onmousedown=function(){return false};}if(this.nav['isGecko']){this.textarea.spellcheck=this.settings[\"gecko_spellcheck\"];}if(this.nav['isOpera']){document.getElementById(\"editor\").style.position=\"absolute\";document.getElementById(\"selection_field\").style.marginTop=\"-1pt\";document.getElementById(\"selection_field\").style.paddingTop=\"1pt\";document.getElementById(\"cursor_pos\").style.marginTop=\"-1pt\";document.getElementById(\"end_bracket\").style.marginTop=\"-1pt\";document.getElementById(\"content_highlight\").style.marginTop=\"-1pt\";}parent.eAL.add_event(this.result, \"click\", function(e){if((e.target || e.srcElement)==eA.result){eA.area_select(eA.textarea.value.length, 0);}});setTimeout(\"eA.manage_size();eA.execCommand('EA_load');\", 10);this.check_undo();this.check_line_selection(true);this.scroll_to_view();for(var i in this.plugins){if(typeof(this.plugins[i].onload)==\"function\") this.plugins[i].onload();}if(this.settings['fullscreen']==true) this.toggle_full_screen(true);parent.eAL.add_event(window, \"resize\", eA.update_size);parent.eAL.add_event(parent.window, \"resize\", eA.update_size);parent.eAL.add_event(top.window, \"resize\", eA.update_size);parent.eAL.add_event(window, \"unload\", function(){if(eAs[eA.id] && eAs[eA.id][\"displayed\"]) eA.execCommand(\"EA_unload\");});};EA.prototype.manage_size=function(){if(!eAs[this.id]) return false;if(eAs[this.id][\"displayed\"]==true){var resized=false;area_width=this.textarea.scrollWidth;area_height=this.textarea.scrollHeight;if(this.nav['isOpera']){area_height=this.last_selection['nb_line']*this.lineHeight;area_width=10000;}if(this.nav['isIE']==7) area_width-=45;if(this.nav['isGecko'] && this.smooth_selection && this.last_selection[\"nb_line\"]) area_height=this.last_selection[\"nb_line\"]*this.lineHeight;if(this.last_selection[\"nb_line\"] >=this.line_number){var div_line_number=\"\";for(i=this.line_number+1;i<this.last_selection[\"nb_line\"]+100;i++){div_line_number+=i+\"<br />\";this.line_number++;}var span=document.createElement(\"span\");if(this.nav['isIE']) span.unselectable=true;span.innerHTML=div_line_number;document.getElementById(\"line_number\").appendChild(span);}if(this.textarea.previous_scrollWidth!=area_width){if(this.nav['isOpera']){}\nelse{if(this.textarea.style.width && (this.textarea.style.width.replace(\"px\",\"\") < area_width)){area_width+=50;}}if(this.nav['isGecko'] || this.nav['isOpera']) this.container.style.width=(area_width+45)+\"px\";\nelse this.container.style.width=area_width+\"px\";this.textarea.style.width=area_width+\"px\";this.content_highlight.style.width=area_width+\"px\";this.textarea.previous_scrollWidth=area_width;resized=true;}if(this.textarea.previous_scrollHeight!=area_height){this.container.style.height=(area_height+2)+\"px\";this.textarea.style.height=area_height+\"px\";this.content_highlight.style.height=area_height+\"px\";this.textarea.previous_scrollHeight=area_height;resized=true;}this.textarea.scrollTop=\"0px\";this.textarea.scrollLeft=\"0px\";if(resized==true){this.scroll_to_view();}}setTimeout(\"eA.manage_size();\", 100);};EA.prototype.add_event=function(obj, name, handler){if (this.nav['isIE']){obj.attachEvent(\"on\" + name, handler);}\nelse{obj.addEventListener(name, handler, false);}};EA.prototype.execCommand=function(cmd, param){for(var i in this.plugins){if(typeof(this.plugins[i].execCommand)==\"function\"){if(!this.plugins[i].execCommand(cmd, param)) return;}}switch(cmd){case \"save\": if(this.settings[\"save_callback\"].length>0) eval(\"parent.\"+this.settings[\"save_callback\"]+\"('\"+ this.id +\"', eA.textarea.value);\");break; case \"save_as\": if(this.settings[\"save_as_callback\"].length>0) eval(\"parent.\"+this.settings[\"save_as_callback\"]+\"('\"+ this.id +\"', eA.textarea.value);\");break; case \"load\": if(this.settings[\"load_callback\"].length>0) eval(\"parent.\"+this.settings[\"load_callback\"]+\"('\"+ this.id +\"');\");break;case \"onchange\": if(this.settings[\"change_callback\"].length>0) eval(\"parent.\"+this.settings[\"change_callback\"]+\"('\"+ this.id +\"');\");break;case \"EA_load\": if(this.settings[\"EA_load_callback\"].length>0) eval(\"parent.\"+this.settings[\"EA_load_callback\"]+\"('\"+ this.id +\"');\");break;case \"EA_unload\": if(this.settings[\"EA_unload_callback\"].length>0) eval(\"parent.\"+this.settings[\"EA_unload_callback\"]+\"('\"+ this.id +\"');\");break;case \"toggle_on\": if(this.settings[\"EA_toggle_on_callback\"].length>0) eval(\"parent.\"+this.settings[\"EA_toggle_on_callback\"]+\"('\"+ this.id +\"');\");break;case \"toggle_off\": if(this.settings[\"EA_toggle_off_callback\"].length>0) eval(\"parent.\"+this.settings[\"EA_toggle_off_callback\"]+\"('\"+ this.id +\"');\");break;case \"re_sync\": if(!this.do_highlight) break;default: if(typeof(eval(\"eA.\"+cmd))==\"function\") try{eval(\"eA.\"+ cmd +\"(param);\");}catch(e){};}};EA.prototype.get_translation=function(word, mode){if(mode==\"template\") return parent.eAL.translate(word, this.settings[\"language\"], mode);\nelse return parent.eAL.get_word_translation(word, this.settings[\"language\"]);};EA.prototype.add_plugin=function(plug_name, plug_obj){for(var i=0;i<this.settings[\"plugins\"].length;i++){if(this.settings[\"plugins\"][i]==plug_name){this.plugins[plug_name]=plug_obj;plug_obj.baseURL=parent.eAL.baseURL + \"plugins/\" + plug_name + \"/\";if( typeof(plug_obj.init)==\"function\" ) plug_obj.init();}}};EA.prototype.load_css=function(url){try{link=document.createElement(\"link\");link.type=\"text/css\";link.rel=\"stylesheet\";link.media=\"all\";link.href=url;head=document.getElementsByTagName(\"head\");head[0].appendChild(link);}catch(e){document.write(\"<link href='\"+ url +\"' rel='stylesheet' type='text/css' />\");}};EA.prototype.load_script=function(url){try{script=document.createElement(\"script\");script.type=\"text/javascript\";script.src =url;head=document.getElementsByTagName(\"head\");head[0].appendChild(script);}catch(e){document.write(\"<script type='text/javascript' src='\" + url + \"'><\"+\"/script>\");}};EA.prototype.add_lang=function(language, values){if(!parent.eAL.lang[language]) parent.eAL.lang[language]=new Object();for(var i in values) parent.eAL.lang[language][i]=values[i];};var eA=new EA();eA.add_event(window, \"load\", init);function init(){setTimeout(\"eA.init();\", 10);}; EA.prototype.focus=function(){this.textarea.focus();this.textareaFocused=true;};EA.prototype.check_line_selection=function(timer_checkup){if(!eAs[this.id]) return false;time=new Date;t1=t2=t3=time.getTime();if(!this.smooth_selection && !this.do_highlight){}\nelse if(this.textareaFocused && eAs[this.id][\"displayed\"]==true && this.isResizing==false){infos=this.get_selection_infos();time=new Date;t2=time.getTime();if(this.last_selection[\"line_start\"] !=infos[\"line_start\"] || this.last_selection[\"line_nb\"] !=infos[\"line_nb\"] || infos[\"full_text\"] !=this.last_selection[\"full_text\"] || this.reload_highlight){new_top=this.lineHeight * (infos[\"line_start\"]-1);new_height=Math.max(0, this.lineHeight * infos[\"line_nb\"]);new_width=Math.max(this.textarea.scrollWidth, this.container.clientWidth -50);this.selection_field.style.top=new_top+\"px\";this.selection_field.style.width=new_width+\"px\";this.selection_field.style.height=new_height+\"px\";document.getElementById(\"cursor_pos\").style.top=new_top+\"px\";if(this.do_highlight==true){var curr_text=infos[\"full_text\"].split(\"\\n\");var content=\"\";var start=Math.max(0,infos[\"line_start\"]-1);var end=Math.min(curr_text.length, infos[\"line_start\"]+infos[\"line_nb\"]-1);for(i=start;i< end;i++){content+=curr_text[i]+\"\\n\";}content=content.replace(/&/g,\"&\");content=content.replace(/</g,\"<\");content=content.replace(/>/g,\">\");if(this.nav['isIE'] || this.nav['isOpera']) this.selection_field.innerHTML=\"<pre>\" + content.replace(\"\\n\", \"<br/>\") + \"</pre>\";\nelse this.selection_field.innerHTML=content;if(this.reload_highlight || (infos[\"full_text\"] !=this.last_text_to_highlight && (this.last_selection[\"line_start\"]!=infos[\"line_start\"] || this.last_selection[\"line_nb\"]!=infos[\"line_nb\"] || this.last_selection[\"nb_line\"]!=infos[\"nb_line\"]) ) ) this.maj_highlight(infos);}}time=new Date;t3=time.getTime();if(infos[\"line_start\"] !=this.last_selection[\"line_start\"] || infos[\"curr_pos\"] !=this.last_selection[\"curr_pos\"] || infos[\"full_text\"].length!=this.last_selection[\"full_text\"].length || this.reload_highlight){var selec_char=infos[\"curr_line\"].charAt(infos[\"curr_pos\"]-1);var no_real_move=true;if(infos[\"line_nb\"]==1 && (this.assocBracket[selec_char] || this.revertAssocBracket[selec_char]) ){no_real_move=false;if(this.findEndBracket(infos, selec_char) ===true){document.getElementById(\"end_bracket\").style.visibility=\"visible\";document.getElementById(\"cursor_pos\").style.visibility=\"visible\";document.getElementById(\"cursor_pos\").innerHTML=selec_char;document.getElementById(\"end_bracket\").innerHTML=(this.assocBracket[selec_char] || this.revertAssocBracket[selec_char]);}\nelse{document.getElementById(\"end_bracket\").style.visibility=\"hidden\";document.getElementById(\"cursor_pos\").style.visibility=\"hidden\";}}\nelse{document.getElementById(\"cursor_pos\").style.visibility=\"hidden\";document.getElementById(\"end_bracket\").style.visibility=\"hidden\";}this.displayToCursorPosition(\"cursor_pos\", infos[\"line_start\"], infos[\"curr_pos\"]-1, infos[\"curr_line\"], no_real_move);if(infos[\"line_nb\"]==1 && infos[\"line_start\"]!=this.last_selection[\"line_start\"]) this.scroll_to_view();}this.last_selection=infos;}time=new Date;tend=time.getTime();if(timer_checkup){if(this.do_highlight==true) setTimeout(\"eA.check_line_selection(true)\", 50);\nelse setTimeout(\"eA.check_line_selection(true)\", 50);}};EA.prototype.get_selection_infos=function(){if(this.nav['isIE']) this.getIESelection();start=this.textarea.selectionStart;end=this.textarea.selectionEnd;if(this.last_selection[\"selectionStart\"]==start && this.last_selection[\"selectionEnd\"]==end && this.last_selection[\"full_text\"]==this.textarea.value) return this.last_selection;if(this.tabulation!=\"\t\" && this.textarea.value.indexOf(\"\t\")!=-1){var len=this.textarea.value.length;this.textarea.value=this.replace_tab(this.textarea.value);start=end=start+(this.textarea.value.length-len);this.area_select(start, 0);}var selections=new Object();selections[\"selectionStart\"]=start;selections[\"selectionEnd\"]=end;selections[\"full_text\"]=this.textarea.value;selections[\"line_start\"]=1;selections[\"line_nb\"]=1;selections[\"curr_pos\"]=0;selections[\"curr_line\"]=\"\";selections[\"indexOfCursor\"]=0;selections[\"selec_direction\"]=this.last_selection[\"selec_direction\"];var splitTab=selections[\"full_text\"].split(\"\\n\");var nbLine=Math.max(0, splitTab.length);var nbChar=Math.max(0, selections[\"full_text\"].length - (nbLine - 1));if(selections[\"full_text\"].indexOf(\"\\r\")!=-1) nbChar=nbChar - (nbLine -1);selections[\"nb_line\"]=nbLine;selections[\"nb_char\"]=nbChar;if(start>0){var str=selections[\"full_text\"].substr(0,start);selections[\"curr_pos\"]=start - str.lastIndexOf(\"\\n\");selections[\"line_start\"]=Math.max(1, str.split(\"\\n\").length);}\nelse{selections[\"curr_pos\"]=1;}if(end>start){selections[\"line_nb\"]=selections[\"full_text\"].substring(start,end).split(\"\\n\").length;}selections[\"indexOfCursor\"]=this.textarea.selectionStart;selections[\"curr_line\"]=splitTab[Math.max(0,selections[\"line_start\"]-1)];if(selections[\"selectionStart\"]==this.last_selection[\"selectionStart\"]){if(selections[\"selectionEnd\"]>this.last_selection[\"selectionEnd\"]) selections[\"selec_direction\"]=\"down\";\nelse if(selections[\"selectionEnd\"]==this.last_selection[\"selectionStart\"]) selections[\"selec_direction\"]=this.last_selection[\"selec_direction\"];}\nelse if(selections[\"selectionStart\"]==this.last_selection[\"selectionEnd\"] && selections[\"selectionEnd\"]>this.last_selection[\"selectionEnd\"]){selections[\"selec_direction\"]=\"down\";}\nelse{selections[\"selec_direction\"]=\"up\";}document.getElementById(\"nbLine\").innerHTML=nbLine;document.getElementById(\"nbChar\").innerHTML=nbChar;document.getElementById(\"linePos\").innerHTML=selections[\"line_start\"];document.getElementById(\"currPos\").innerHTML=selections[\"curr_pos\"];return selections;};EA.prototype.getIESelection=function(){var range=document.selection.createRange();var stored_range=range.duplicate();stored_range.moveToElementText( this.textarea );stored_range.setEndPoint( 'EndToEnd', range );if(stored_range.parentElement() !=this.textarea) return;var scrollTop=this.result.scrollTop + document.body.scrollTop;var relative_top=range.offsetTop - parent.calculeOffsetTop(this.textarea) + scrollTop;var line_start=Math.round((relative_top / this.lineHeight) +1);var line_nb=Math.round(range.boundingHeight / this.lineHeight);var range_start=stored_range.text.length - range.text.length;var tab=this.textarea.value.substr(0, range_start).split(\"\\n\");range_start+=(line_start - tab.length)*2;this.textarea.selectionStart=range_start;var range_end=this.textarea.selectionStart + range.text.length;tab=this.textarea.value.substr(0, range_start + range.text.length).split(\"\\n\");range_end+=(line_start + line_nb - 1 - tab.length)*2;this.textarea.selectionEnd=range_end;};EA.prototype.setIESelection=function(){var nbLineStart=this.textarea.value.substr(0, this.textarea.selectionStart).split(\"\\n\").length - 1;var nbLineEnd=this.textarea.value.substr(0, this.textarea.selectionEnd).split(\"\\n\").length - 1;var range=document.selection.createRange();range.moveToElementText( this.textarea );range.setEndPoint( 'EndToStart', range );range.moveStart('character', this.textarea.selectionStart - nbLineStart);range.moveEnd('character', this.textarea.selectionEnd - nbLineEnd - (this.textarea.selectionStart - nbLineStart) );range.select();};EA.prototype.tab_selection=function(){if(this.is_tabbing) return;this.is_tabbing=true;if( this.nav['isIE'] ) this.getIESelection();var start=this.textarea.selectionStart;var end=this.textarea.selectionEnd;var insText=this.textarea.value.substring(start, end);var pos_start=start;var pos_end=end;if (insText.length==0){this.textarea.value=this.textarea.value.substr(0, start) + this.tabulation + this.textarea.value.substr(end);pos_start=start + this.tabulation.length;pos_end=pos_start;}\nelse{start=Math.max(0, this.textarea.value.substr(0, start).lastIndexOf(\"\\n\")+1);endText=this.textarea.value.substr(end);startText=this.textarea.value.substr(0, start);tmp=this.textarea.value.substring(start, end).split(\"\\n\");insText=this.tabulation+tmp.join(\"\\n\"+this.tabulation);this.textarea.value=startText + insText + endText;pos_start=start;pos_end=this.textarea.value.indexOf(\"\\n\", startText.length + insText.length);if(pos_end==-1) pos_end=this.textarea.value.length;}this.textarea.selectionStart=pos_start;this.textarea.selectionEnd=pos_end;if(this.nav['isIE']){this.setIESelection();setTimeout(\"eA.is_tabbing=false;\", 100);}\nelse this.is_tabbing=false;};EA.prototype.invert_tab_selection=function(){if(this.is_tabbing) return;this.is_tabbing=true;if(this.nav['isIE']) this.getIESelection();var start=this.textarea.selectionStart;var end=this.textarea.selectionEnd;var insText=this.textarea.value.substring(start, end);var pos_start=start;var pos_end=end;if (insText.length==0){if(this.textarea.value.substring(start-this.tabulation.length, start)==this.tabulation){this.textarea.value=this.textarea.value.substr(0, start-this.tabulation.length) + this.textarea.value.substr(end);pos_start=Math.max(0, start-this.tabulation.length);pos_end=pos_start;}}\nelse{start=this.textarea.value.substr(0, start).lastIndexOf(\"\\n\")+1;endText=this.textarea.value.substr(end);startText=this.textarea.value.substr(0, start);tmp=this.textarea.value.substring(start, end).split(\"\\n\");insText=\"\";for(i=0;i<tmp.length;i++){for(j=0;j<this.tab_nb_char;j++){if(tmp[i].charAt(0)==\"\t\"){tmp[i]=tmp[i].substr(1);j=this.tab_nb_char;}\nelse if(tmp[i].charAt(0)==\" \") tmp[i]=tmp[i].substr(1);}insText+=tmp[i];if(i<tmp.length-1) insText+=\"\\n\";}this.textarea.value=startText + insText + endText;pos_start=start;pos_end=this.textarea.value.indexOf(\"\\n\", startText.length + insText.length);if(pos_end==-1) pos_end=this.textarea.value.length;}this.textarea.selectionStart=pos_start;this.textarea.selectionEnd=pos_end;if(this.nav['isIE']){this.setIESelection();setTimeout(\"eA.is_tabbing=false;\", 100);}\nelse this.is_tabbing=false;};EA.prototype.press_enter=function(){if(!this.smooth_selection) return false;if(this.nav['isIE']) this.getIESelection();var scrollTop=this.result.scrollTop;var scrollLeft=this.result.scrollLeft;var start=this.textarea.selectionStart;var end=this.textarea.selectionEnd;var start_last_line=Math.max(0 , this.textarea.value.substring(0, start).lastIndexOf(\"\\n\") + 1 );var begin_line=this.textarea.value.substring(start_last_line, start).replace(/^([ \t]*).*/gm, \"$1\");if(begin_line==\"\\n\" || begin_line==\"\\r\" || begin_line.length==0) return false;if(this.nav['isIE'] || this.nav['isOpera']){begin_line=\"\\r\\n\"+ begin_line;}\nelse{begin_line=\"\\n\"+ begin_line;}this.textarea.value=this.textarea.value.substring(0, start) + begin_line + this.textarea.value.substring(end);this.area_select(start+ begin_line.length ,0);if(this.nav['isIE']){this.result.scrollTop=scrollTop;this.result.scrollLeft=scrollLeft;}return true;};EA.prototype.findEndBracket=function(infos, bracket){var start=infos[\"indexOfCursor\"];var normal_order=true;if(this.assocBracket[bracket]) endBracket=this.assocBracket[bracket];\nelse if(this.revertAssocBracket[bracket]){endBracket=this.revertAssocBracket[bracket];normal_order=false;}var end=-1;var nbBracketOpen=0;for(var i=start;i<infos[\"full_text\"].length && i>=0;){if(infos[\"full_text\"].charAt(i)==endBracket){nbBracketOpen--;if(nbBracketOpen<=0){end=i;break;}}\nelse if(infos[\"full_text\"].charAt(i)==bracket) nbBracketOpen++;if(normal_order) i++;\nelse i--;}if(end==-1) return false;var endLastLine=infos[\"full_text\"].substr(0, end).lastIndexOf(\"\\n\");if(endLastLine==-1) line=1;\nelse line=infos[\"full_text\"].substr(0, endLastLine).split(\"\\n\").length + 1;var curPos=end - endLastLine;this.displayToCursorPosition(\"end_bracket\", line, curPos, infos[\"full_text\"].substring(endLastLine +1, end));return true;};EA.prototype.displayToCursorPosition=function(id, start_line, cur_pos, lineContent, no_real_move){var elem=document.getElementById(\"test_font_size\");var dest=document.getElementById(id);var postLeft=0;elem.innerHTML=\"<pre><span id='test_font_size_inner'>\"+lineContent.substr(0, cur_pos).replace(/</g,\"<\").replace(/&/g,\"&\")+\"</span></pre>\";posLeft=45 + document.getElementById('test_font_size_inner').offsetWidth;var posTop=this.lineHeight * (start_line-1);if(no_real_move!=true){dest.style.top=posTop+\"px\";dest.style.left=posLeft+\"px\";}dest.cursor_top=posTop;dest.cursor_left=posLeft;};EA.prototype.area_select=function(start, length){this.textarea.focus();start=Math.max(0, Math.min(this.textarea.value.length, start));end=Math.max(start, Math.min(this.textarea.value.length, start+length));if(this.nav['isIE']){this.textarea.selectionStart=start;this.textarea.selectionEnd=end;this.setIESelection();}\nelse{if(this.nav['isOpera']){this.textarea.setSelectionRange(0, 0);}this.textarea.setSelectionRange(start, end);}this.check_line_selection();};EA.prototype.area_get_selection=function(){var text=\"\";if( document.selection ){var range=document.selection.createRange();text=range.text;}\nelse{text=this.textarea.value.substring(this.textarea.selectionStart, this.textarea.selectionEnd);}return text;}; EA.prototype.replace_tab=function(text){return text.replace(/((\\n?)([^\t\\n]*)\t)/gi, eA.smartTab);};EA.prototype.smartTab=function(){val=\" \";return EA.prototype.smartTab.arguments[2] + EA.prototype.smartTab.arguments[3] + val.substr(0, eA.tab_nb_char - (EA.prototype.smartTab.arguments[3].length)%eA.tab_nb_char);};EA.prototype.add_style=function(styles){if(styles.length>0){newcss=document.createElement(\"style\");newcss.type=\"text/css\";newcss.media=\"all\";document.getElementsByTagName(\"head\")[0].appendChild(newcss);cssrules=styles.split(\"}\");newcss=document.styleSheets[0];if(newcss.rules){for(i=cssrules.length-2;i>=0;i--){newrule=cssrules[i].split(\"{\");newcss.addRule(newrule[0],newrule[1])}}\nelse if(newcss.cssRules){for(i=cssrules.length-1;i>=0;i--){if(cssrules[i].indexOf(\"{\")!=-1){newcss.insertRule(cssrules[i]+\"}\",0);}}}}};EA.prototype.set_font=function(family, size){var elems=new Array(\"textarea\", \"content_highlight\", \"cursor_pos\", \"end_bracket\", \"selection_field\", \"line_number\");if(family && family!=\"\") this.settings[\"font_family\"]=family;if(size && size>0) this.settings[\"font_size\"]=size;if(this.nav['isOpera']) this.settings['font_family']=\"monospace\";var elem_font=document.getElementById(\"area_font_size\");if(elem_font){for(var i=0;i<elem_font.length;i++){if(elem_font.options[i].value && elem_font.options[i].value==this.settings[\"font_size\"]) elem_font.options[i].selected=true;}}document.getElementById(\"test_font_size\").style.fontFamily=\"\"+this.settings[\"font_family\"];document.getElementById(\"test_font_size\").style.fontSize=this.settings[\"font_size\"]+\"pt\";document.getElementById(\"test_font_size\").innerHTML=\"0\";this.lineHeight=document.getElementById(\"test_font_size\").offsetHeight;for(var i=0;i<elems.length;i++){var elem=document.getElementById(elems[i]);document.getElementById(elems[i]).style.fontFamily=this.settings[\"font_family\"];document.getElementById(elems[i]).style.fontSize=this.settings[\"font_size\"]+\"pt\";document.getElementById(elems[i]).style.lineHeight=this.lineHeight+\"px\";}if(this.nav['isOpera']){var start=this.textarea.selectionStart;var end=this.textarea.selectionEnd;var parNod=this.textarea.parentNode, nxtSib=this.textarea.nextSibling;parNod.removeChild(this.textarea);parNod.insertBefore(this.textarea, nxtSib);this.area_select(start, end-start);}this.add_style(\"pre{font-family:\"+this.settings[\"font_family\"]+\"}\");this.last_line_selected=-1;this.last_selection=new Array();this.resync_highlight();};EA.prototype.change_font_size=function(){var size=document.getElementById(\"area_font_size\").value;if(size>0) this.set_font(\"\", size);};EA.prototype.open_inline_popup=function(popup_id){this.close_all_inline_popup();var popup=document.getElementById(popup_id);var editor=document.getElementById(\"editor\");for(var i=0;i<this.inlinePopup.length;i++){if(this.inlinePopup[i][\"popup_id\"]==popup_id){var icon=document.getElementById(this.inlinePopup[i][\"icon_id\"]);if(icon){this.switchClassSticky(icon, 'editAreaButtonSelected', true);break;}}}popup.style.height=\"auto\";popup.style.overflow=\"visible\";if(document.body.offsetHeight< popup.offsetHeight){popup.style.height=(document.body.offsetHeight-10)+\"px\";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -