⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 edit.js

📁 在网页上输入维文字符实例.
💻 JS
字号:
/***************************************************************************//*                                                                         *//*  edit.js                                                                *//*                                                                         *//*  Uyghur Unicode Input System -- edit file.                              *//*                                                                         *//*  Copyright 2003-2004 by Muhammad Abdulla (muhammad@yulghun.com)         *//*                                                                         *//*  Anyone is free to use and distribute this piece of software, provided  *//*  that this copyright notice is retained. The author is not responsible  *//*  for any damage caused by the usage of this software.                   *//*                                                                         *//*  Uyghurcha:                                                             *//*  Bu programmini harkim mushu nashir hoquqi sozini saqlap qalghan halda  *//*  ishlatsa wa tarqatsa bolidu. Bu programmini tuzguchi ishlitishtin      *//*  kilip chiqqan ziyangha masul bolmaydu.                                 *//*  Pikirliringiz bolsa muhammad@yulghun.com digan addrisqa hat awating.   *//***************************************************************************/var inited = 0 ;var imode = 0 ; // input mode, default is Uyghurvar prevflag = 0 ;var txtcpy = "" ;//var editable = true ;var isIE = false ;var isGecko = false ;function storeCaret ( content ) { // text area content   if ( content.createTextRange ) {      content.caretPos = document.selection.createRange().duplicate() ;   }   return true ;};function findSpecialString ( input ){   // special character array, some cursor like chars so as not to disturb   // users much on slow computers.   // Return str should not part of the input string to locate cursor position   // correctly.    var scarr = "|Il!" ;    var esp = scarr.substr ( 0, 1 ) ;    var i ;   while ( input.indexOf ( esp ) != -1 ) {      i = Math.floor ( Math.random() * scarr.length ) ;      esp = esp + String.fromCharCode ( scarr.charCodeAt(i) ) ;    }   return esp ;};function insertAtContext ( content, charcode ) { // text area content   var tmp = "" ;   var prev_str = "", next_str = "" ;   var prev = -1, cur = -1, next =-1 ; // previous, current, next character codes   var repl = "" ; //replacement string   var line_no = 0 ; // which line we are at   var pos ;   var charcount = 1 ;   var esp = "" ;   var cursor_position = 0 ;   if ( (isIE && content.createTextRange && content.caretPos) ||      (isGecko && ( content.setSelectionRange || document.selection )) ) {      // clear selected text      if ( isIE ) {        document.selection.createRange().text = "" ;      } else if ( isGecko ) {         content.value = content.value.substring (0, content.selectionStart ) +                         content.value.substr ( content.selectionEnd ) ;       }      // backup the current text content      tmp = content.value ;      if ( isIE ) {        // IE does not give cursor position.        // Insert a special character array and find its index to obtain cursor position        esp = findSpecialString ( tmp )  ;        content.caretPos.text = esp ;        cursor_position = content.value.indexOf ( esp );        prev_str = tmp.substring(0, cursor_position - 1 );  //string to the left        next_str = tmp.substr( cursor_position + esp.length ); //string to the right      } else if ( isGecko ) { // Mozilla give range variables        cursor_position = content.selectionStart ;        prev_str = tmp.substring(0, cursor_position - 1 );  //string to the left        next_str = tmp.substr( cursor_position + 1 ); //string to the right      }      line_no = get_lineno ( prev_str ) ;      if ( cursor_position > 0 ) {         prev = tmp.charCodeAt ( cursor_position - 1 ) ;         charcount++ ;      }      if ( cursor_position < content.value.length - esp.length ) {         next = content.value.charCodeAt ( cursor_position + esp.length ) ;         charcount++ ;      }      cur = charcode ;      repl = getContextString ( prev, cur, next ) ;       tmp = prev_str + repl + next_str ;      content.value = tmp ;        pos = cursor_position + 1 - line_no ; // compensate for "\r\n"      pos = pos + repl.length - charcount ; // compensate for special joint letters: "LA", etc.       setSelectionRange ( content, pos, pos ) ;   } };function setSelectionRange(input, selectionStart, selectionEnd) {  if (input.setSelectionRange) {    input.focus();    input.setSelectionRange(selectionStart, selectionEnd);  } else if (input.createTextRange) {    var range = input.createTextRange();    range.collapse(true);    range.moveEnd('character', selectionEnd);    range.moveStart('character', selectionStart);    range.select();  }};// returns the number of newlines in a stringfunction get_lineno ( str ){      var nl = "\r" ;      var index ;      var nolines = 0 ;      index = str.indexOf ( nl ) ;      while ( index != -1 ) {         nolines++ ;         index = str.indexOf ( nl, index + 1 ); //start search after last match found      }      return nolines ;};/* * setHexText(str) -- returns HTML comaptible ASCII representation of str in &#ddddd; form  */function setHexText ( str ) {   var tmp = "" ;   var cstr = "" ;   var i, code ;   for ( i = 0 ; i < str.length ; i++ ) {      code = str.charCodeAt(i) ;      cstr = String.fromCharCode(code) ;      if ( code < 128 ) {          tmp += cstr ;      } else {         tmp += "&#" + code + ";" ;      }   }   return tmp ;};/* * validate() -- This was originally used to check for invalid email addresses. *  It's kept to support email sending application by changing mail body and *   mail subject in Uyghur from UTF-8 to ASCII form ( &#dddd; ). */function validate ( ){     var t  = document.forms.textform.mail ;   var us = document.forms.textform.usubject ;   var to = document.textform.to.value ;   var from = document.textform.from.value ;   document.textform.hex.value  = setHexText ( t.value ) ;   document.textform.usubhex.value = setHexText ( us.value ) ;};function insertAtCaret ( content, text ) { // text area content, text to be inserted   if ( content.createTextRange && content.caretPos ) {      var cpos = content.caretPos ;      cpos.text = text ;   } else {      content.value = content.value + text ;    }};function proc_kp ( content, event ) {   var ev = event ;   var t = content ;    var ch, i, k, ch2 ;   var itoggle = false ; // input mode toggle   /*   if ( editable == false ) {      ev.returnValue = false ;      return false ;   }   */   // if Contrl-k is pressed, toggle between input modes   if ( ev.ctrlKey ) {      if ( isIE ) {         k = ev.keyCode ;         // when "k" is pressed with "Control", the keyCode in IE is equal to 11, strange.         if ( k == 11 ) {            itoggle = true ;         }      } else if ( isGecko ) { // ev.which is equal to ascii code of "k" in Mozilla.         k = ev.which ;         if ( k == 107 ) {            itoggle = true ;         }      }      if ( itoggle ) {         imode = 1 - imode ; // toggle input mode         ev.returnValue = false ;         return false;      }   }   if ( imode == 1 ) { // English      ev.returnValue = true ;      return true ;   }   if ( isIE ) {      // for text field, allow default behaviour for "Enter"      if ( ev.keyCode == 13 && t.type == "text" ) {         return true ;      } else {         insertAtContext ( t, ev.keyCode ) ;      }   } else if ( isGecko ) {      var kcode = ev.which ;      // for text field, allow default behaviour for "Enter"      if ( kcode == 13 &&  instanceOf ( t, HTMLTextAreaElement ) ) {         insertAtContext ( t, kcode ) ;      } else if ( kcode < 32 || kcode == 46 ) {         return true ;      } else {         insertAtContext ( t, kcode ) ;      }   }   ev.returnValue = false ;   return false ;};function instanceOf(object, class_name ) {   if ( isIE ) {      return ( eval ( "object instanceof class_name" ) ) ;   } else if ( isGecko ) {      while (object != null) {         if (object == class_name .prototype) {            return true         }         object = object.__proto__;      }   }   return false;};function proc_kd ( content ) {   var t = content ;   storeCaret( t ) ;};function proc_ku ( content, event ) {   var t = content ;    var kcode ;   storeCaret( t ) ;   kcode = event.keyCode ;   if ( kcode == 8 ) {  // backspace key      insertAtContext ( t, -1 ) ;   } else if ( kcode == 46 ) { // delete key      insertAtContext ( t, -1 ) ;   }   //setPreviewText ( t.value ) ;};function selectLang ( langID ){   var idx = document.getElementById(langID).selectedIndex ;   var selected = document.getElementById(langID).options[idx].value;   if ( selected == "English" ) {      imode = 1 ;   } else {      imode = 0 ;   }};function setFocus ( content ) {   if ( inited == 0 ) {      var flag = 1 ;      var i, code ;      var cstr ;      inited = 1 ;      t = content ;       // if all of the text is whitespace, set to blank      for ( i = 0 ; i < t.value.length ; i++ ) {         code = t.value.charCodeAt(i) ;         cstr = String.fromCharCode ( code ) ;         if ( cstr != " " && cstr != "\t" ) {            flag = 0 ;            break ;         }      }      if ( flag == 1 ) {         t.value = "" ;      }   }};function init () {   // detect browser   var ua = navigator.userAgent.toLowerCase();   isIE = ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)) ;   isGecko = (ua.indexOf("gecko") != -1 && ua.indexOf("safari") == -1) ;};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -