2
0

dict.js 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. var dict_pre_searching=false;
  2. var dict_pre_search_curr_word="";
  3. var dict_search_xml_http=null;
  4. var g_filename="";
  5. var g_take_split;
  6. var g_curr_word="";
  7. function dict_turbo_split(){
  8. let word = $("#dict_ref_search_input").val();
  9. $.post("./dict_find4.php",
  10. {
  11. word:word
  12. },
  13. function(data,status){
  14. $("#dict_ref_search_result").html(data);
  15. });
  16. }
  17. function dict_jump(obj){
  18. let jumpto=obj.innerHTML;
  19. dict_search(jumpto);
  20. }
  21. function part_click(obj){
  22. let word = obj.innerHTML;
  23. dict_search(word,false);
  24. }
  25. function add_part_to_input(parts){
  26. $("#dict_ref_search_input").val(parts);
  27. dict_input_split(parts)
  28. }
  29. function add_part_to_word(parts){
  30. $("#input_org").val(parts);
  31. }
  32. function dict_search(word,take_split=true){
  33. g_take_split = take_split;
  34. g_curr_word = word;
  35. if(window.XMLHttpRequest)
  36. {// code for IE7, Firefox, Opera, etc.
  37. dict_search_xml_http=new XMLHttpRequest();
  38. }
  39. else if(window.ActiveXObject)
  40. {// code for IE6, IE5
  41. dict_search_xml_http=new ActiveXObject("Microsoft.XMLHTTP");
  42. }
  43. if (dict_search_xml_http!=null)
  44. {
  45. dict_search_xml_http.onreadystatechange=dict_search_serverResponse;
  46. word=word.replace(/\+/g,"%2b");
  47. dict_search_xml_http.open("GET", "./dict_find3.php?op=search&word="+word, true);
  48. dict_search_xml_http.send();
  49. }
  50. else
  51. {
  52. alert("Your browser does not support XMLHTTP.");
  53. }
  54. $("part").click(function(){
  55. add_part($(this).html());
  56. });
  57. }
  58. function dict_search_serverResponse(){
  59. if (dict_search_xml_http.readyState==4)// 4 = "loaded"
  60. {
  61. debugOutput("server response.",0);
  62. if (dict_search_xml_http.status==200)
  63. {// 200 = "OK"
  64. var serverText = dict_search_xml_http.responseText;
  65. dict_result=document.getElementById("dict_ref_search_result");
  66. if(dict_result){
  67. dict_result.innerHTML=serverText;
  68. document.getElementById("dict_ref_dict_link").innerHTML=document.getElementById("dictlist").innerHTML;
  69. document.getElementById("dictlist").innerHTML="";
  70. if(g_take_split){
  71. $("#dict_word_auto_split").html($("#auto_splite").html());
  72. $("#auto_splite").html("");
  73. }
  74. var gramma_info_array=document.getElementsByClassName("dict_find_gramma");
  75. for(i_gramma_info=0;i_gramma_info<gramma_info_array.length;i_gramma_info++){
  76. if(gramma_info_array[i_gramma_info]!=null){
  77. gramma_info_array[i_gramma_info].innerHTML=getLocalGrammaStr(gramma_info_array[i_gramma_info].innerHTML);
  78. }
  79. }
  80. //当点击<see>标签时自动查字典
  81. $("see").click(function(){
  82. var to =$(this).attr("to");
  83. var link;
  84. if(to){
  85. link=to;
  86. }
  87. else{
  88. link=$(this).text();
  89. }
  90. dict_search(link);
  91. });
  92. }
  93. }
  94. else
  95. {
  96. debugOutput(dict_pre_search_xml_http.statusText,0);
  97. }
  98. }
  99. }
  100. var dict_pre_search_xml_http=null;
  101. function dict_pre_search(word){
  102. if(dict_pre_searching==true){return;}
  103. dict_pre_searching=true;
  104. dict_pre_search_curr_word=word;
  105. if(window.XMLHttpRequest)
  106. {// code for IE7, Firefox, Opera, etc.
  107. dict_pre_search_xml_http=new XMLHttpRequest();
  108. }
  109. else if(window.ActiveXObject)
  110. {// code for IE6, IE5
  111. dict_pre_search_xml_http=new ActiveXObject("Microsoft.XMLHTTP");
  112. }
  113. if (dict_pre_search_xml_http!=null)
  114. {
  115. dict_pre_search_xml_http.onreadystatechange=dict_pre_search_serverResponse;
  116. dict_pre_search_xml_http.open("GET", "./dict_find3.php?op=pre&word="+word, true);
  117. dict_pre_search_xml_http.send();
  118. }
  119. else
  120. {
  121. alert("Your browser does not support XMLHTTP.");
  122. }
  123. }
  124. function dict_pre_search_serverResponse(){
  125. if (dict_pre_search_xml_http.readyState==4)// 4 = "loaded"
  126. {
  127. debugOutput("server response.",0);
  128. if (dict_pre_search_xml_http.status==200)
  129. {// 200 = "OK"
  130. var serverText = dict_pre_search_xml_http.responseText;
  131. if (window.DOMParser){
  132. var parser=new DOMParser();
  133. var wordData=parser.parseFromString(serverText,"text/xml");
  134. }
  135. else{ // Internet Explorer
  136. var wordData=new ActiveXObject("Microsoft.XMLDOM");
  137. wordData.async="false";
  138. wordData.loadXML(serverText);
  139. }
  140. if(wordData){
  141. var wordlist = wordData.getElementsByTagName("word")
  142. //var obj = JSON.parse(serverText);
  143. var dict_word="";
  144. for(var iword=0; iword<wordlist.length;iword++){
  145. dict_word += "<div class='dict_word_list'><a onclick='dict_pre_word_click(\""+getNodeText(wordlist[iword],"pali")+"\")'>"+getNodeText(wordlist[iword],"pali")+"-"+getNodeText(wordlist[iword],"count")+"</a></div>"
  146. }
  147. dict_result=document.getElementById("dict_ref_search_result");
  148. if(dict_result){
  149. dict_result.innerHTML=dict_word;
  150. }
  151. }
  152. }
  153. else
  154. {
  155. debugOutput(dict_pre_search_xml_http.statusText,0);
  156. }
  157. dict_pre_searching=false;
  158. var newword = document.getElementById("dict_ref_search_input").value;
  159. if(newword!=dict_pre_search_curr_word){
  160. dict_pre_search(newword);
  161. }
  162. }
  163. }
  164. function dict_pre_word_click(word){
  165. document.getElementById("dict_ref_search_input").value=word;
  166. dict_search(word);
  167. }
  168. function dict_input_change(obj){
  169. dict_pre_search(obj.value);
  170. }
  171. function dict_input_keypress(e,obj){
  172. var keynum
  173. var keychar
  174. var numcheck
  175. if(window.event) // IE
  176. {
  177. keynum = e.keyCode
  178. }
  179. else if(e.which) // Netscape/Firefox/Opera
  180. {
  181. keynum = e.which
  182. }
  183. var keychar = String.fromCharCode(keynum)
  184. if(keynum==13){
  185. }
  186. }
  187. function dict_input_keyup(e,obj){
  188. var keynum
  189. var keychar
  190. var numcheck
  191. if(window.event) // IE
  192. {
  193. keynum = e.keyCode
  194. }
  195. else if(e.which) // Netscape/Firefox/Opera
  196. {
  197. keynum = e.which
  198. }
  199. var keychar = String.fromCharCode(keynum)
  200. if(keynum==13){
  201. dict_search(obj.value);
  202. }
  203. else{
  204. dict_input_split(obj.value);
  205. dict_pre_search(obj.value);
  206. }
  207. }
  208. function dict_input_split(word){
  209. if(word.indexOf("+")>=0){
  210. var wordParts=word.split("+");
  211. var strParts="";
  212. for(var i in wordParts){
  213. strParts+="<a onclick='dict_search(\""+wordParts[i]+"\")'>"+wordParts[i]+"</a>";
  214. }
  215. strParts+=" <a onclick='add_part(\""+word+"\")'>[√]</a> ";
  216. document.getElementById("input_parts").innerHTML=strParts;
  217. }
  218. else{
  219. document.getElementById("input_parts").innerHTML="";
  220. }
  221. }