searchreplace.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. /**
  2. * Created with JetBrains PhpStorm.
  3. * User: xuheng
  4. * Date: 12-9-26
  5. * Time: 下午12:29
  6. * To change this template use File | Settings | File Templates.
  7. */
  8. //清空上次查选的痕迹
  9. editor.firstForSR = 0;
  10. editor.currentRangeForSR = null;
  11. //给tab注册切换事件
  12. /**
  13. * tab点击处理事件
  14. * @param tabHeads
  15. * @param tabBodys
  16. * @param obj
  17. */
  18. function clickHandler( tabHeads,tabBodys,obj ) {
  19. //head样式更改
  20. for ( var k = 0, len = tabHeads.length; k < len; k++ ) {
  21. tabHeads[k].className = "";
  22. }
  23. obj.className = "focus";
  24. //body显隐
  25. var tabSrc = obj.getAttribute( "tabSrc" );
  26. for ( var j = 0, length = tabBodys.length; j < length; j++ ) {
  27. var body = tabBodys[j],
  28. id = body.getAttribute( "id" );
  29. body.onclick = function(){
  30. this.style.zoom = 1;
  31. };
  32. if ( id != tabSrc ) {
  33. body.style.zIndex = 1;
  34. } else {
  35. body.style.zIndex = 200;
  36. }
  37. }
  38. }
  39. /**
  40. * TAB切换
  41. * @param tabParentId tab的父节点ID或者对象本身
  42. */
  43. function switchTab( tabParentId ) {
  44. var tabElements = $G( tabParentId ).children,
  45. tabHeads = tabElements[0].children,
  46. tabBodys = tabElements[1].children;
  47. for ( var i = 0, length = tabHeads.length; i < length; i++ ) {
  48. var head = tabHeads[i];
  49. if ( head.className === "focus" )clickHandler(tabHeads,tabBodys, head );
  50. head.onclick = function () {
  51. clickHandler(tabHeads,tabBodys,this);
  52. }
  53. }
  54. }
  55. //是否区分大小写
  56. function getMatchCase(id) {
  57. return $G(id).checked ? true : false;
  58. }
  59. //查找
  60. $G("nextFindBtn").onclick = function (txt, dir, mcase) {
  61. var findtxt = $G("findtxt").value, obj;
  62. if (!findtxt) {
  63. return false;
  64. }
  65. obj = {
  66. searchStr:findtxt,
  67. dir:1,
  68. casesensitive:getMatchCase("matchCase")
  69. };
  70. if (!frCommond(obj)) {
  71. alert(lang.getEnd);
  72. }
  73. };
  74. $G("nextReplaceBtn").onclick = function (txt, dir, mcase) {
  75. var findtxt = $G("findtxt1").value, obj;
  76. if (!findtxt) {
  77. return false;
  78. }
  79. obj = {
  80. searchStr:findtxt,
  81. dir:1,
  82. casesensitive:getMatchCase("matchCase1")
  83. };
  84. frCommond(obj);
  85. };
  86. $G("preFindBtn").onclick = function (txt, dir, mcase) {
  87. var findtxt = $G("findtxt").value, obj;
  88. if (!findtxt) {
  89. return false;
  90. }
  91. obj = {
  92. searchStr:findtxt,
  93. dir:-1,
  94. casesensitive:getMatchCase("matchCase")
  95. };
  96. if (!frCommond(obj)) {
  97. alert(lang.getStart);
  98. }
  99. };
  100. $G("preReplaceBtn").onclick = function (txt, dir, mcase) {
  101. var findtxt = $G("findtxt1").value, obj;
  102. if (!findtxt) {
  103. return false;
  104. }
  105. obj = {
  106. searchStr:findtxt,
  107. dir:-1,
  108. casesensitive:getMatchCase("matchCase1")
  109. };
  110. frCommond(obj);
  111. };
  112. //替换
  113. $G("repalceBtn").onclick = function () {
  114. var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
  115. replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
  116. if (!findtxt) {
  117. return false;
  118. }
  119. if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
  120. return false;
  121. }
  122. obj = {
  123. searchStr:findtxt,
  124. dir:1,
  125. casesensitive:getMatchCase("matchCase1"),
  126. replaceStr:replacetxt
  127. };
  128. frCommond(obj);
  129. };
  130. //全部替换
  131. $G("repalceAllBtn").onclick = function () {
  132. var findtxt = $G("findtxt1").value.replace(/^\s|\s$/g, ""), obj,
  133. replacetxt = $G("replacetxt").value.replace(/^\s|\s$/g, "");
  134. if (!findtxt) {
  135. return false;
  136. }
  137. if (findtxt == replacetxt || (!getMatchCase("matchCase1") && findtxt.toLowerCase() == replacetxt.toLowerCase())) {
  138. return false;
  139. }
  140. obj = {
  141. searchStr:findtxt,
  142. casesensitive:getMatchCase("matchCase1"),
  143. replaceStr:replacetxt,
  144. all:true
  145. };
  146. var num = frCommond(obj);
  147. if (num) {
  148. alert(lang.countMsg.replace("{#count}", num));
  149. }
  150. };
  151. //执行
  152. var frCommond = function (obj) {
  153. return editor.execCommand("searchreplace", obj);
  154. };
  155. switchTab("searchtab");