NoName Team 電腦資訊討論區

 找回密碼
 我要註冊
搜索
查看: 3706|回復: 0

[問題] Java script 可以在這求助嗎?

[複製鏈接]
發表於 2012-4-13 04:02:47 | 顯示全部樓層 |閱讀模式
本帖最後由 1833 於 2012-4-13 04:05 編輯

一個網頁目錄的模組 tree menu java script,原本是網頁建置百寶箱的範例,網站已年久失修沒在運作,個人覺得此目錄模組簡單好用,但是僅能在IE上面顯示。

我將範例放在個人的免費網頁空間裡,截取裡面java script檔,是不是能麻煩看得懂java script的大大,指導一下能否將這java script修改成其他瀏覽器(Firefox,Google Chrome,Safari)也能使用。 多謝啦

樹狀目錄範例


java script file: new_tree_core.js
  1. // Author : linss<linss@ms1.url.com.tw>   LastModified : 2003/06/10
  2. document.write("<div id="TreeScr" style="behavior:url(#default#download)"></div><table bor\
  3. der="0" cellpadding="0" cellspacing="0"><tr><td><div id="TreeRoot"></div><div id="Tre\
  4. eTemp_0"></div></td></tr></table>")
  5. var IconPath, TreeFile, TreeLeft, TreeTop
  6. var TmpStr_0, TmpStr_1, LastIndex
  7. var RootItem, RootLink
  8. var NodeItem, VertLine, NodeIcon, ItemIcon, NodeLink, NodeEvent, SwapEvent, ChildNode, TempHTML

  9. function onDownloadDone(scriptText){
  10. TmpStr_0 = scriptText.replace(/^[\s]+/g,"").replace(/[\s]+$/g,"").split("\n")
  11. RootItem = TmpStr_0[0].replace(/^[\s]+/g,"").replace(/[\s]+$/g,"").split(",")
  12. RootLink = (RootItem[2])?
  13. " href=""+RootItem[2]+"" target=""+RootItem[3]+"" onMouseOver="Hilight('Over','Link_0');t\
  14. op.status='"+RootItem[0]+"';return true" onMouseOut="Hilight('Out','Link_0');top.status=''"\
  15. onMouseUp="Hilight('Down','Link_0');top.status=''"":
  16. " href="javascript:void(0)" onMouseOut="Hilight('Out','Link_0');top.status=''" onMouseOver\
  17. ="Hilight('Over','Link_0');top.status='"+RootItem[0]+"';return true" onMouseUp="Hilight('Do\
  18. wn','Link_0');top.status=''""
  19. TreeRoot.innerHTML = "<table border="0" cellpadding="0" cellspacing="1"><tr><td width="\
  20. 16" height="16"><a"+RootLink+" hidefocus="true"><img height="16" width="16" align="t\
  21. exttop" src=""+IconPath+RootItem[1].replace(/^[\s]+/g,"").replace(/[\s]+$/g,"")+".gif" bord\
  22. er=0></a></td><td height="16"><div class="TreeLink"><a"+RootLink+" id="Link_0" class="T\
  23. ree_Out" hidefocus="true">"+RootItem[0]+"</a></div></td></tr></table>"

  24. //自動載入圖示
  25. var IconTemper = new Array()
  26. var IconReader = new Array()
  27. var IconLoader = new Array()
  28. for(p=0;p<TmpStr_0.length;p++){
  29. IconTemper[p] = TmpStr_0[p].split(",")
  30. IconReader[p] = IconTemper[p][1].replace(/^[\s]+/g,"").replace(/[\s]+$/g,"")
  31. }
  32. IconTemper = IconReader.join()
  33. IconLoader[0] = "new_tree_node_e_0"
  34. IconLoader[1] = "new_tree_node_e_1"
  35. IconLoader[2] = "new_tree_node_e_2"
  36. IconLoader[3] = "new_tree_node_n_0"
  37. IconLoader[4] = "new_tree_node_n_1"
  38. IconLoader[5] = "new_tree_node_n_2"
  39. IconLoader[6] = "new_tree_vert"
  40. IconLoader[7] = "folder_on"        //資料夾開啟圖示,若有必要請自行更改。
  41. IconLoader[8] = "folder_off"        //資料夾關閉圖示,若有必要請自行更改。
  42. Collection = IconLoader.join()
  43. n = IconLoader.length
  44. for(l=0;l<IconReader.length;l++){
  45. if(!Collection.match(IconReader[l])){
  46. if(IconTemper.match(IconReader[l])){
  47. IconLoader[n] = IconReader[l]
  48. Collection = IconLoader.join()
  49. }
  50. n++
  51. }
  52. }

  53. var PreloadIcons = new Array()
  54. for(c=0;c<IconLoader.length;c++){
  55. PreloadIcons[c] = new Image()
  56. PreloadIcons[c].src = eval('IconPath+IconLoader[c]+".gif"')
  57. }

  58. BuildTree(0,0,0,TmpStr_0.length,false)
  59. }

  60. //建立樹狀目錄
  61. function BuildTree(Step,ToPos,Tree_S,Tree_E,Icon){
  62. if(eval('TreeTemp_'+ToPos).innerHTML){
  63. eval('TreeTemp_'+ToPos).style.display = (eval('TreeTemp_'+ToPos).style.display=="block")?
  64. "none":
  65. "block"
  66. eval('TreeIcon_'+ToPos).src = (eval('TreeTemp_'+ToPos).style.display=="block")?
  67. IconPath+Icon+"_on.gif":
  68. IconPath+Icon+"_off.gif"
  69. eval('TreeNode_'+ToPos).src = (eval('TreeTemp_'+ToPos).style.display=="block")?
  70. eval('TreeNode_'+ToPos).src.replace("_1","_2"):
  71. eval('TreeNode_'+ToPos).src.replace("_2","_1")
  72. }else{
  73. TmpStr_1 = new Array
  74. var j = 0, k = 0
  75. for(i=Tree_S;i<Tree_E;i++){
  76. TmpStr_0[i] = TmpStr_0[i].replace(/^[\s]+/g,"").replace(/[\s]+$/g,"")
  77. if(TmpStr_0[i].search("├")==Step||TmpStr_0[i].search("└")==Step){
  78. TmpStr_1[j] = new Array
  79. TmpStr_1[j][0] = TmpStr_0[i]
  80. TmpStr_1[j][1] = k
  81. j++
  82. }else
  83. if(TmpStr_0[i].search("├")>Step||TmpStr_0[i].search("└")>Step){
  84. k++
  85. TmpStr_1[j-1][1] = TmpStr_1[j-1][1]+1
  86. }
  87. k=0
  88. }
  89. var v = (Tree_S)?
  90. Tree_S:
  91. Tree_S+1
  92. for(i=0;i<TmpStr_1.length;i++){
  93. NodeItem = TmpStr_1[i][0].replace(/[├└│ ]/g,"").split(",")
  94. VertLine = (i==TmpStr_1.length-1)?
  95. "":
  96. "background=""+IconPath+"new_tree_vert.gif""
  97. NodeIcon = (i==TmpStr_1.length-1)?
  98. "e":
  99. "n"
  100. NodeIcon = (TmpStr_1[i][1])?
  101. NodeIcon+"_1":
  102. NodeIcon+"_0"
  103. ItemIcon = (TmpStr_1[i][1])?
  104. NodeItem[1]+"_off":
  105. NodeItem[1].replace(/^[\s]+/g,"").replace(/[\s]+$/g,"")
  106. NodeLink = (NodeItem[2])?
  107. " href=""+NodeItem[2]+"" target=""+NodeItem[3]+"" onMouseOver="Hilight('Over','Link_"+v+"\
  108. ');top.status='"+NodeItem[0]+"';return true" onMouseOut="Hilight('Out','Link_"+v+"');top.sta\
  109. tus=''" onMouseUp="Hilight('Down','Link_"+v+"');top.status=''"":
  110. " href="javascript:void(0)" onMouseOut="Hilight('Out','Link_"+v+"');top.status=''" onMouse\
  111. Over="Hilight('Over','Link_"+v+"');top.status='"+NodeItem[0]+"';return true" onMouseUp="Hil\
  112. ight('Down','Link_"+v+"');top.status=''""
  113. NodeEvent = (TmpStr_1[i][1])?
  114. " onClick="BuildTree("+(Step+1)+",'"+ToPos+"_"+(i+1)+"',"+(v+1)+","+(v+TmpStr_1[i][1]+1)+",'\
  115. "+NodeItem[1]+"')" style="cursor:hand"":
  116. ""
  117. SwapEvent = (TmpStr_1[i][1])?
  118. " onClick="TreeNode_"+ToPos+"_"+(i+1)+".click()"":
  119. ""
  120. ChildNode = (TmpStr_1[i][1])?
  121. "<div id="TreeTemp_"+ToPos+"_"+(i+1)+"" style="display:none"></div>":
  122. ""
  123. TempHTML = "<table border="0" cellpadding="0" cellspacing="0"><tr><td width="19" heigh\
  124. t="16" valign="top" "+VertLine+"><img id="TreeNode_"+ToPos+"_"+(i+1)+"" width="19" hei\
  125. ght="16" align="texttop" src=""+IconPath+"new_tree_node_"+NodeIcon+".gif""+NodeEvent+"><\
  126. /td><td height="16"><table border="0" cellpadding="0" cellspacing="1"><tr><td width="\
  127. 16" height="16"><div "+SwapEvent+"><a"+NodeLink+" hidefocus="true"><img border="0" heig\
  128. ht="16" width="16" id="TreeIcon_"+ToPos+"_"+(i+1)+"" src=""+IconPath+ItemIcon+".gif"><\
  129. /a></div></td><td height="16"><div"+SwapEvent+" nowrap class="TreeLink"><a"+NodeLink+" id=\
  130. "Link_"+v+"" class="Tree_Out" hidefocus="true">"+NodeItem[0]+"</a></div></td></tr></tabl\
  131. e>"+ChildNode+"</td></tr></table>"
  132. eval('TreeTemp_'+ToPos).insertAdjacentHTML("beforeEnd",TempHTML)
  133. if(ToPos){
  134. eval('TreeNode_'+ToPos).src = eval('TreeNode_'+ToPos).src.replace("_1","_2")
  135. eval('TreeIcon_'+ToPos).src = ""+IconPath+Icon+"_on.gif"
  136. eval('TreeTemp_'+ToPos).style.display = "block"
  137. }
  138. v+=TmpStr_1[i][1]
  139. v++
  140. }
  141. }
  142. }

  143. function Hilight(s,n){
  144. if(s=="Down"){
  145. if(LastIndex)
  146. eval(LastIndex).className = "Tree_Out"
  147. LastIndex = n
  148. eval(LastIndex).className = "Tree_Down"
  149. }else{
  150. eval(n).className=(eval(n).id==LastIndex)?"Tree_Down":eval("'Tree_'+s")
  151. }
  152. }

  153. function DrawTree(){
  154. IconPath=(IconPath)?IconPath:"./"
  155. if(TreeTop>=0)
  156. document.body.style.marginTop = TreeTop
  157. if(TreeLeft>=0)
  158. document.body.style.marginLeft = TreeLeft
  159. TreeScr.startDownload(TreeFile, onDownloadDone)
  160. }
  161. document.ondragstart = new Function("return false")        //關閉拖曳
  162. document.onselectstart = new Function("return false")        //關閉選取
  163. document.oncontextmenu = new Function("return false")        //關閉右鍵
  164. window.onload=DrawTree
複製代碼
您需要登錄後才可以回帖 登錄 | 我要註冊

本版積分規則

小黑屋|手機版|NoName Team 電腦資訊討論區 |網站地圖

GMT+8, 2025-11-15 17:13 , Processed in 0.078138 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表