TogglePre.js
上传用户:voiper
上传日期:2022-05-13
资源大小:260k
文件大小:3k
源码类别:

TreeView控件

开发平台:

C#

  1. var MinPreHeight = 450;
  2. var MinPreChars  = 750;
  3. var PreOpen = new Image();
  4. var PreClose = new Image();
  5. PreOpen.src="/images/plus.gif";
  6. PreClose.src="/images/minus.gif";
  7. function togglePre()
  8. {
  9. var id = this.getAttribute("preid");
  10. var preelm = document.getElementById("pre" + id);
  11. var imgelm = document.getElementById("preimg" + id);
  12. var togelm = document.getElementById("precollapse" + id);
  13. if (preelm.style.display != 'none') 
  14. {
  15. if (document.all) togelm.innerText = " Expand code snippet";
  16. else 
  17. {
  18. document.getElementById("premain" + id).className = "precollapse";
  19. togelm.firstChild.nodeValue = " Expand code snippet";
  20. }
  21. preelm.style.display = 'none';
  22. imgelm.setAttribute("src", PreOpen.src);
  23. }
  24. else 
  25. {
  26. if (document.all) togelm.innerText = " Collapse";
  27. else 
  28. {
  29. document.getElementById("premain" + id).className = "SmallText";
  30. togelm.firstChild.nodeValue = " Collapse";
  31. }
  32. preelm.style.display = 'block';
  33. imgelm.setAttribute("src", PreClose.src);
  34. }
  35. }
  36. function InitTogglePre()
  37. {
  38. var articleText = document.getElementById("contentdiv");
  39. var pres = articleText.getElementsByTagName("pre");
  40. for (var i=0; i<pres.length; i++)
  41. {
  42. if (pres[i].offsetHeight == 0)
  43. {
  44. if (pres[i].innerText.length < MinPreChars) continue;
  45. }
  46. else if (pres[i].offsetHeight < MinPreHeight)
  47. continue;
  48. var main = document.createElement("div");
  49. main.style.width="100%";
  50. main.setAttribute("id", "premain" + i.toString());
  51. elm = document.createElement("img");
  52. elm.setAttribute("id", "preimg" + i.toString());
  53. elm.setAttribute("src", PreClose.src);
  54. if (document.all) elm.style.cursor = "pointer";
  55. elm.setAttribute("height", 9);
  56. elm.setAttribute("width", 9);
  57. elm.setAttribute("preid", i);
  58. elm.onclick = togglePre;
  59. main.appendChild(elm);
  60. elm = document.createElement("span");
  61. elm.setAttribute("id", "precollapse" + i.toString());
  62. if (document.all)
  63. {
  64. main.className = "precollapse";
  65. elm.innerText = " Collapse";
  66. elm.style.cursor = "pointer";
  67. }
  68. else
  69. {
  70. main.className = "SmallText";
  71. //This is lame. Why can't W3C just allow innerText on spans??
  72. var new_el = document.createTextNode(" Collapse");
  73. elm.appendChild(new_el);
  74. }
  75. elm.style.marginBottom = 0;
  76. elm.onclick = togglePre;
  77. elm.setAttribute("preid", i);
  78. main.appendChild(elm);
  79. pres[i].setAttribute("id", "pre" + i.toString());
  80. pres[i].style.marginTop = 0;
  81. var parent = pres[i].parentNode;
  82. parent.insertBefore(main, pres[i]);
  83. }
  84. }
  85. InitTogglePre();