鄧華

          BlogJava 聯系 聚合 管理
            48 Posts :: 0 Stories :: 149 Comments :: 0 Trackbacks
          這兩天,為了實現ajax的樹形目錄,找了很多代碼. 最后確定用xloadtree.

          在xloadtree的主頁上, 有項目xtree 和xloadtree  一個是固定顯示的樹,一個是動態加載的樹.

          在他的隱藏目錄里,有一個xtree2  地址為http://webfx.eae.net/dhtml/xtree2b/  這個是正在測試的版本, 融合了xtree和xloadtree.  更新了代碼, 但還是beta版.

          xloadtree 可以在各種瀏覽器下通用. 兼容性效果非常好.

          主要的三個文件:  xtree2.js, xloadtree2.js, xtree2.css 
          xloadtree2.js 主要是對ajax方式的封裝, 實現異步調用. 顯示樹的時候,調用xtree2.js里面的代碼. xtree2.css 控制樹的顯示式樣.  在查看他的文檔的時候,主要看xtree2的文檔,這里面才有對樹怎樣進行操作. xloadtree只是個調用包裝.

          xtree2.js :
          輸出html代碼的時候, 調用的是toHtml() 方法. 在這個方法中,其中最主要的是getRowHtml() 來得到每一行的輸出.  方法中用 getExpandIconHtml() 來控制展開后圖標的代碼輸出, getIconHtml()控制未展開的圖標輸出.  getLabelHtml() 控制文本的輸出, 如果不想要圖標,就把圖標的輸出代碼屏蔽掉就OK.


          關于在頁面輸出后,看不到源代碼的調試方法:

          <br/>
          <INPUT type="button" name="ad" onclick="charge();" value="change">
          <br/>
          <TEXTAREA rows="10" cols="30" id="ttt" name="ttt"></TEXTAREA>
          <br/>
          <INPUT type="button" name="findnode" onclick="findnode();" value="findnode">
          <br/>
          <INPUT type="button" name="openpath" onclick="openpath();" value="openpath">
          <script>
              
          function charge(){
                  document.getElementById('ttt').value
          =tree.getSelected().toHtml();
              }
              
              
          function findnode(){
                  tree.findChildByText(document.getElementById('ttt').value,
          0);
              }
              
              
          function openpath(){
                  tree.openPath(webFXTreeHandler.htmlToText(document.getElementById('ttt').value),true);
                  tree.getSelected().expand();
              }
          </script>

          在頁面中放置如上代碼.  注意,先要獲得樹的句柄.  比較創建樹的時候,用如下代碼:

          var tree = new WebFXTree("<%=rootname%>");

          在展開的樹點,選擇后, 點擊change 按鈕,可以得到這個節點對應的html代碼.  然后對應html可以找到相應的CSS. 這個就不多寫了.

          xloadtree在調用子節點樹的時候,和服務器之間傳輸的是xml.
          DTD的定義如下
          <!ELEMENT tree (tree*)>
          <!ATTLIST tree
                      text        CDATA    #REQUIRED
                      src            CDATA    #IMPLIED
                      action        CDATA    #IMPLIED
                      icon        CDATA    #IMPLIED
                      openIcon    CDATA    #IMPLIED
                      target        CDATA    #IMPLIED
          >

          其中 text為顯示文本,  src為下級目錄目錄的地址. action為點擊的鏈接. icon為圖標,openIcon為節點打開后的圖標. target為目標,和a標簽的target用法一樣.


          因為xml 文件不能傳送< > 這種符號, 可以采用&lt; &gt; 傳送.   因為項目里需要在樹上顯示HTML代碼,所以在js里面做了修改.  修改的部分比較多. 還沒有測試有沒有意外情況. 這個以后再說.


          還有, 在使用過程中,有一個BUG. 是設置tabindex的. 會出錯.

          this.setTabIndex(this.tabIndex); 

          將xtree2.js文件中的這一行屏蔽掉就行了. 當然,先要確定你不需要使用tab鍵定位. :)


          2006- 4- 22 增加:
            在要打開指定目錄樹的時候 如果樹里面包含html代碼, 可以用如下語句
          <script>try{top.tree.tree.openPath(webFXTreeHandler.htmlToText("/北京新東方學校/<font color=red><b>留學考試</b></font>/fff"),true);}catch(err){}</script>


          2006-5-19
          前天在同事應用的時候,出現的問題是加載過程中如果樹結點為中文,就加載不上. 后來找到問題的原因是在用servlet輸出xml 的時候,是用的steam的方式, 后來改成字符輸出方式才正確. 如下.

                      PrintWriter out=response.getWriter();
                      out.write(outputXML.toString());
                      out.flush();
                      out.close();


          2008-09-03

          關于隨機參數,指的是URL請求中帶有一個隨機參數。 這個參數,可以是當前時間,或者隨機數。 用來避開瀏覽器的緩存

           

          posted on 2005-11-13 18:55 鄧華的碎碎念 閱讀(27886) 評論(113)  編輯  收藏
          評論共2頁: 1 2 下一頁 

          Feedback

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-30 10:16 lip199162
          <?xml version="1.0"?>
          <tree>
          <tree text="1sub" action="plist.php?mid=3&sid=6" target="main"/>
          </tree>

          這幾行XML問題出在 plist.php?mid=3&sid=6 如果我改成 plist.php?mid=3或

          plist.php?sid=6 都不會有問題

          為什么這行語句不能有 & 這個字符呀,郁悶呀,求救一下,拜托了.  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-31 10:38 nickey's home
          @lip199162
          那就改成&amp; 試試?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-31 15:48 zz
          呵呵,路過看看

          我是用一個Servlet 直接吐出數據的,只要編碼正確,都沒有問題

          想問一個問題,我樹圖是逐層加載的,當加載到最后一個節點的時候,后臺會返回空數據,xloadtree就會出現錯誤,我只好返回一個xml來表示是空節點,比較難看,如何解決?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-03-31 16:15 lip199162
          我的問題,已經解決了,真的很感謝各位,謝謝了  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-18 11:08 aaa
          有沒有誰用過這個東東,為啥非要生成一個xml 文件呢?能不能直接用從后臺獲取的xml 數據  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-20 16:31 hailang
          我想知道如何在樹上顯示html代碼,具體的js修改是哪些?
          QQ:28308402  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-22 10:42 intraweb
          在使用xloadtree生成xml文件并載入時,發現文件生成沒有問題,但是在load時,頁面有時顯示error,說什么xml document have not top leve element,我查了xml文件,結構是沒有問題的,不知道各位遇到過這種問題沒有?是不是他的bug

          具體我的步驟是將節點的src指定到一個jsp文件中,該jsp文件完成生成XML文件,并使用recpose.sendredirect到新的xml文件,不知是不是我的步驟有什么問題。我試了如果把生成文件和載入xml文件分在兩個文件中分步完成基本沒有問題。難道生成文件和載入xml要分為兩步完成嗎?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-24 16:42 nickey's home
          TO intraweb

          不應該轉發, 應該直接輸出xml.   回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-25 22:21 intraweb
          我是使用javabean進行生成xml文件的,如何直接輸出啊?難道要用servelet才行?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-04-27 15:42 minghaitang
          現在的xloadtree都是一次異步調用,再點第2次的時候就不去后臺取數據了,如何實現每次展開時都進行異步調用?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-01 18:36 wen4516
          你好,,你能否告訴我讓菜單一開始顯示的就是全展開的狀態嗎。。。。這樣顯示比較直觀  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-01 22:54 atoi
          @wen4516
          tree.expandAll();


          另外,我也有一個問題,關于動態加載的。
          我在自己的PHP程序中加載子節點。如果直接使用xtree2b演示使用的tree.xml,
          var tic = new WebFXLoadTreeItem('asdf', 'tree.xml')
          這樣可以加載沒有任何問題,但是我一旦把src參數改為php文件,不管帶不帶參數,都不能加載節點,即使我把tree.xml直接改名為tree.php都一樣,顯示的錯誤信息為:
          Error loading tree.php (200: OK)
          請問這是怎么回事?另外有沒有什么方法可以調試?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-02 11:19 wen4516
          我的菜單是與數據庫相連的我沒有定義它。顯示方式是

          <div class="dynamicMenu">
          <menu:useMenuDisplayer name="ListMenu" pository="repository">
          <menu:displayMenu name="DatabaseMenu"/>
          <menu:displayMenu name="StandaloneMenu"/>
          </menu:useMenuDisplayer>
          </div>

          怎樣才能做到進入頁面菜單以全展開的形式顯現  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-10 18:44 kind
          tree.add(new WebFXLoadTreeItem("Tree Item 2", "tree.xml", "http://www.google.com", "main", "", ""));
          為什麼我加上main就不行呢,一片空白,去掉就好了
          可是我不想把連接開在本窗口,而是想開在main窗口
          有辦法嗎?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-12 10:21 小輝
          我用的Weblogic為什么加載XML的時候老報錯呀?我直接使用靜態的demo.html也不能加載 XML,但是用Firefox就可以用了,什么原因呀  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-12 10:26 小輝
          哪位大哥幫幫忙呀
          我的問題很簡單
          我想運行demo.html文件,demo.html和Tree.xml都是下載的源文件,
          用 IE 時 加載 XML 失敗
          用 Firefox 加載 XML 成功
          放到Tomcat 使用IE中 成功
          但是放到Weblogic使用IE 失敗了
          我們的工程使用的Weblogic,什么原因呀  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-12 10:26 小輝
          哪位大哥幫幫忙呀
          我的問題很簡單
          我想運行demo.html文件,demo.html和Tree.xml都是下載的源文件,
          用 IE 時 加載 XML 失敗
          用 Firefox 加載 XML 成功
          放到Tomcat 使用IE中 成功
          但是放到Weblogic使用IE 失敗了
          我們的工程使用的Weblogic,什么原因呀  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-13 22:34 nickey
          @小輝

          xloadtree和用的什么服務器是沒有關系的.
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-14 02:31 vincent_qiutian
          @nickey
          應該沒有關系,只要客戶斷支持JavaScript好像就行了:)  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-17 21:11 aa
          寫了一個讀xml文件的方法,生成樹,怎么傳上去,想把展示圖片頁傳上去  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-18 22:02 vincent_qiutian
          你好,看了你寫的文章對我的啟發很大,但是在使用中卻遇到了些問題,希望您能夠給一些建議:
          我采用了你提供的Xloadtree,一個JSP文件在執行的時候首先在指定的目錄中生成了一個一個tree.xml文件,最后還是在這個頁面下面調用了這個tree.xml
          var atree = new WebFXLoadTree("系統權限","xmltreea.xml");
          atree.build();

          但是如果用戶刷新了本頁面后,tree.xml文件已經更新了內容,但是顯示的還是上一次沒有刷新的內容,為什么?

          還有你給出的example.htm頁面上有一個“重新加載異步樹”的按鈕調用了atree.reload()方法,但是我如果采用自己生成的XML調用這個方法IE就報錯,后來發現,如果XML文件中沒有這一行“<TreeNode text="遞歸加載" radio="true" src="tree.xml" />” 這個按鈕就不起作用,能給我解答一下嗎?

          我所需要的就是每次調入的時候,能夠都重新加載一遍XML文件,謝謝!
          我的聯絡方式:
          msn:qiutian1976@minihome.8800.org
          QQ:568670(請注明XloadTree)
          Email:qiutian1976@163.com

          希望您能夠在百忙之中抽出一些時間給與解答,謝謝!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-19 09:32 nickey's home
          @vincent_qiutian

          但是如果用戶刷新了本頁面后,tree.xml文件已經更新了內容,但是顯示的還是上一次沒有刷新的內容,為什么?

          這個情意我沒有碰到過,重新開個IE 呢? 可能跟IE的緩存有關系,在request和meta里面設一下,不緩存,應該就沒有問題了.

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-19 14:00 vincent_qiutian
          @nickey's home

          你好,雖然添加在Request和Meta上添加了禁用緩存,但是在同一個IE瀏覽器中,刷新頁面還是不好用,顯示的還是第一次load進來的信息。
          但是新開一個網頁,輸入網址卻能解決這個問題,但是實際應用中我是用這個Tree來顯示用戶的權限列表的,當第一次調入的時候顯示的是A的用戶的權限列表,當我返回后點擊B后,雖然XML文件已經更新,列表顯示的還是A的權限,
          我都郁悶了:(

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-19 19:34 nickey's home
          @vincent_qiutian
          你的xml文件沒有加吧...xml文件我也不知道怎么加...-_- 用servlet輸出下?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-20 02:54 vincent_qiutian
          @nickey's home
          總結問題如下:
          1.按照例子正確的配置了文件的路徑和XML文件的路徑,第一次打開本網頁,可以顯示正常信息,當進入同一個網頁,但是參數傳遞不同的時候,后臺已經重建了這個XML文件,但是,仍舊顯示原來的信息
          找到一個貌似可以解決的辦法,再開一個新網頁,然后輸入這個XML文件的地址,例如:http://localhost:8080/test/xmltree.xml,瀏覽器就顯示出了重建后的內容(說明,系統已經根據傳遞參數重新建立,并且文件生成正確),然后在切換到第一次打開的那個瀏覽器,這個時候刷新頁面的時候,就會顯示正確的結果了
          但這個方法不具備實用性,因為用戶不會按照你的這個麻煩的方式去操作
          2.當把IE的緩存由“自動”設置成“每次訪問頁面都檢測”,這樣雖然刷新還是顯示原有內容,但是刷新兩次后就會顯示正確內容。

          以上問題通過不同的機器和操作系統反復測試,問題依舊。


          我是用的環境是Tomcat 5 +JSP
          通過以上情況判斷,由于我的XML文件名稱從來沒有變更過(雖然內容在更新),Tomcat 緩存了我的這個XML文件,導致刷新后內容不變,但是我又找不到Tomcat怎么禁止緩存XML文件的方法,郁悶!

          我猜想的解決方式,頁面調用前,隨機生成一個XML文件名稱,然后讓xloadtree去調用,調用結束后,在頁尾刪除這個XML文件,這樣每次用戶訪問的時候是用的都是不同的XML文件,這樣可以避免Tomcat緩存已經使用過的XML文件,這個只是我的想法,有時間測試一下。  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-20 19:26 vincent_qiutian
          通過隨機生成XML文件名稱得方法解決了問題,但是Tomcat為什么緩存以前生成XML文件的問題依舊沒有解決  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-21 10:20 nickey's home
          @vincent_qiutian
          不用隨機文件名吧,加個隨機參數就行了..  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-21 15:10 vincent_qiutian
          @nickey's home
          呵呵沒有大區別了 :) 現在好用了! 謝謝你:)  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-23 22:45 wo
          @nickey's hom
          你用的是這個么?

          open ('GET', file, true);
          send ('');
          每刷新一次,
          就讀一次文件
          cache
          是么  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-05-25 10:00 絕類
          我想展開的時候對每個節點進行功能操作(例如填刪改的操作)該如何實現?
          有人做過類似的操作嗎?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-12 13:59 ancory
          我現在想通過一個jsp文件直接把xml文件的內容輸出,而不是先生成xml文件,然后在取,這樣總是提示內容為空!為什么啊,如果是servlet的情況我沒有測試,另外通過一個javabean輸出xml文件也應該可以吧?有人通過應用jsp文件成功了嗎?這個jsp文件發個例子到上面看看,謝了!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-14 09:13 zz
          @ancory
          很簡單的,代碼如下
          <%@ page contentType="text/html; charset=GBK" %>
          <%@ page import="java.io.*" %>
          <%@ page import="org.jdom.*" %>
          <%@ page import="org.jdom.input.DOMBuilder" %>
          <%@ page import="org.jdom.output.*" %>
          <%
          try {
          org.jdom.Document doc = (org.jdom.Document)request.getSession().getAttribute("TreeDoc");
          response.setContentType("text/xml");
          PrintWriter outt = response.getWriter();
          XMLOutputter outer=new XMLOutputter(" ",true,"GBK");
          outt.println(outer.outputString(doc));
          }
          catch (Exception ex) {
          ex.printStackTrace();
          }
          %>  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-15 10:24 ancory
          response.setCharacterEncoding("GB2312");
          String s = (String)request.getParameter("keyID");
          String s1 = ",again";
          response.setContentType("text/xml, charset = GBK");
          response.setHeader("Cache-Control", "no-cache");
          response.setDateHeader("Expires", 0);
          out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
          out.println("<tree>");
          out.println(" <tree text=\"myxml1測試" + s + s1 + "\" action=\"http://webfx.eae.net\" />");
          out.println(" <tree text=\"myxml2\">");
          out.println(" <tree text=\"myxml2.1\" action=\"javascript:alert(2.1)\" />");
          out.println(" </tree>");
          out.println(" <tree text=\"myxm13\" action=\"http://webfx.eae.net\" />");
          out.println("</tree>");
          out.close();

          這樣不行嗎?不支持中文!
          org.jdom這個包我沒有找到  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-15 10:28 ancory
          PrintWriter out=response.getWriter();
          out.write(outputXML.toString());
          out.flush();
          out.close();
          這里的 outputXML是什么東西啊,我用一個StringBuffer得到xml格式的字符串,然后輸入,還是不支持中文?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-15 11:46 nickey's home
          噢. 統一用utf-8,不應該出現中文問題的.  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-19 15:53 zz
          @ancory
          我是用jdom 來解析xml 的

          如果是用Servlet來輸出數據,我設置如下
          response.setCharacterEncoding("text/xml; charset=GBK");
          ..................
          response.getWriter().println(str);//這里的str是一個xml字符,encoding="GBK"

          頁面的編碼也是"GBK"

          這里要注意Servlet的輸入格式和編碼,xml字符串的encoding,頁面的編碼  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-19 15:54 zz
          這里要注意Servlet的response的setCharacterEncoding方式,xml字符串的encoding,頁面的編碼   回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-20 14:41 ancory
          我用jsp和servlet都試過,都對中文不支持,昏了!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-21 09:48 zz
          @ancory
          :(

          是否編碼不統一? 你先把xml字符串直接在頁面上打印(servlet輸出或jsp打印)看看,如果可以正常顯示一般不會有問題

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-21 13:32 ancory
          直接打印都正常,編碼沒有問題,如果是從xml中讀取也是正常的,就是通過jsp或servlet輸出后就不正常,問題處在這里:xloadtree.js的_xmlFileLoaded(MyXmlHttp.responseXML, jsNode);
          這行代碼上,如果有中文MyXmlHttp.responseXML取到的就是空,所有總是彈出一個空提示框,難道你們和我的js文件不同?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-21 18:46 yehaoren
          如果我想修改節點的名稱,JS應該如何寫,在線等解  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-22 16:41 ancory
          @yehaoren
          這是一個動態加載樹,如果是從xml文件讀取節點,直接改xml文件的第一個字段就可以了,如果是從數據庫讀取,就不存在問題了  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-22 16:57 ancory
          現在有個問題:這個軟件是有版權的,如果在項目中使用,會不會有問題啊,怎么解決呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-23 13:39 zz
          @ancory
          responseXML的確有時候會有問題,接收的東西為空
          換成responseText試試

          這個是開源的,不會有問題  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-23 15:22 ancory
          @zz
          謝謝指點,我查資料改好了。
          現在我想問一下這個target在哪里設置,怎么設置呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-26 10:54 zz
          <?xml version="1.0" encoding="UTF-8"?>
          <tree>
          <tree id="1" text="test1" src="" action="test?type=1" toolTip="test1" target="leftframe" />
          </tree>

          是這個target么?   回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-26 12:10 ancory
          這個可以加,就是在開始的時候怎么加:
          var tree = new WebFXTree("Root");
          tree.add(new WebFXTreeItem("Tree Item 11","testxml.jsp"));
          如果這個地方要加target,怎么加啊,試了好長時間沒有成功!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-06-26 17:00 zz
          這個要修改xtree2.js文件
          添加2個方法
          //在1522行原先方法下添加
          //zz
          function WebFXTreeItem(sText, oAction,target) {
          WebFXTreeAbstractNode.call(this, sText, oAction,target);
          }
          在288 行原先方法下添加
          //zz
          function WebFXTreeAbstractNode(sText, oAction,target) {
          this.childNodes = [];
          if (sText) this.text = sText;
          if (oAction) this.action = oAction;
          if (target) this.target = target;
          this.id = webFXTreeHandler.getUniqueId();
          if (webFXTreeConfig.usePersistence) {
          this.open = webFXTreeHandler.persistenceManager.getExpanded(this);
          }
          webFXTreeHandler.addNode(this);
          }

          測試代碼:
          tree.add(new WebFXTreeItem("Tree Item 1","http://www.google.com","_about"));  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-05 15:22 xra
          請高手幫忙:  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-05 15:30 xra
          http://webfx.eae.net/dhtml/xtree2b/下載的xtree2b-20050606.zip,運行里面的xloadtreedemo.html,出錯?已經把this.setTabIndex(this.tabIndex); 去掉。提示Error loading tree.xml(0:Unknown).
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-05 16:01 xra
          奇怪了啊,為什么我運行都是這樣的錯誤啊!請大家不吝賜教啊!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-05 16:24 xra
          我剛試了下,啟動tomcat以后再運行就沒有問題,如果直接運行就會出錯,郁悶!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-19 12:00 fang
          諸位,怎樣一次展開所有節點呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-19 17:19 fang
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
          "http://www.w3.org/TR/html4/strict.dtd">

          <html>
          <head>
          <title>XTree 2 Demo</title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <link type="text/css" rel="stylesheet" href="css/xtree2b/xtree2.links.css">
          <script type="text/javascript" src="js/xtree2b/xtree2.js"></script>

          <script type="text/javascript" src="js/xtree2b/xloadtree2.js"></script>


          </head>
          <body>

          <script type="text/javascript">
          //alert("ok");
          var tree = new WebFXLoadTree("Hello World", "tree.xml");
          tree.write();

          </script>

          </body>
          </html>

          以上代碼出現問題 WebFXLoadTree 該問題怎么跟蹤呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-19 17:20 fang
          以上代碼出現問題 'WebFXLoadTree'未定義 請問該問題怎么跟蹤呢?   回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-19 17:54 fang
          http://webfx.eae.net/dhtml/xtree2b/ 下載的東西在apache-tomcat-5.5.16下可用,而在Resin 1.2.10下不可用.

          請問這是怎么回事?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-21 17:32 fang
          請問用http://webfx.eae.net/dhtml/xtree2b/能否實現樹型結構的多選框?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-26 14:30 poplar
          @nickey's home

          怎么用隨機參數啊?
          我搞了一天也沒有搞定,我是通過servlet從數據庫中取數據,
          但數據庫數據更新了,但目錄樹怎么刷新也更新不了。
          希望每次點擊一個節點的時候能重新從數據庫中取數據。
          我用的web服務器是weblogic 8.14

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-10-12 15:52
          犯得上發射點法@lip199162
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-10-19 21:25 itwhen
          nickey 我也出現了這個問題
          var tic = new WebFXLoadTreeItem('asdf', 'tree.xml')
          這樣可以加載沒有任何問題,但是我一旦把src參數改為php文件,不管帶不帶參數,都不能加載節點,即使我把tree.xml直接改名為tree.php都一樣,顯示的錯誤信息為:
          Error loading tree.php (200: OK)
          請問這是怎么回事?
          謝謝了   回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-10-19 22:23 itwhen
          找到原因 動態返回內容前需要設置Content-Type為text/xml  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-11-23 19:01 wyq_tomorrow
          有一段時間了,為了這個頭都大了.
          我用這個控件讀取xml文件成功了,我用dom4j從數據庫中讀出文件,生成xml文件,然后進行 加載,添加子節點,刪除節點都可以,但是我在刪除最后一個節點之后,在初始化xml文件,xml文件已經變了,就是生成的樹還是空的,我把網頁關了,然后再打開就可以了,不知道原因,希望高手給與指教。  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-01-30 15:47 xief
          IE上打開就得不到MyXmlHttp.responseXML中得xml內容是怎么解決得呀?各位大俠幫幫忙呀:(  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-02-27 15:06 hshen
          把下面的語句注銷掉即可
          if (count == 0) {
          jsNode.errorText = "Error loading " +jsNode.src + " (???)";
          }  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-03-18 14:55 roroya
          我用xloadtree做了動態加載的樹,是通過servlet里把數據庫的數據調出后改寫成xloadtree定義的xml格式,然后加載的。現在有一個問題,就是,我想能不能有方法改一下xtree,讓<tree>標簽里的action屬性能夠支持兩個javascript,意思就是,現在可以寫成
          String action = "javascript:doPriCategoryAction('" + name +"')";
          能不能夠寫成兩種方法?一種是點擊節點時跳轉頁面,另外一種是鼠標滑移到某一個節點時能夠顯示一些節點信息?
          希望大家共同討論。  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-03-26 00:28 ontology
          請問怎么能在 點擊+好按鈕時候 生成需要的xml 然后再加載  回復  更多評論
            

          # 怎么刷新樹中選中的節點 2007-05-14 09:30 eboge
          作者不知道還看得到不, 看到了請回一下, 如果我選中了某個節點,怎么樣reload?我看了一下API, 好像只能刷新根節點(只有根節點有引用,其他的節點用的XML生成的,里面的都是SRC,沒有引用可用)  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-06-30 12:38 kofman
          學習:請問您的隨機參數如何設置呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-06-30 12:39 kofman
          @vincent_qiutian
          學習:請問您的隨機文件名如何設置呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-07-05 14:22 superpig
          怎么在節點上加上右鍵菜單呢?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-07-10 10:22 chen bo
          收藏了.....  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-07-13 20:33 luking
          我現在做了一個樹,有三層關系,怎么才能在頁面打開時展開樹的第二層節點的指定子節點?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-08-14 09:48 xxl
          如何用數據庫+javabean+jsp實現樹形目錄動態的增刪改操作!
          希望能向各位學習學習!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-09-19 14:04 Adair
          請問,如何能對xloadtree2實現查找功能???即,關鍵的如何能獲取一個結點的引用????大家知道嗎???  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-10-18 16:23 lynnpeng
          請問各位若使用在IE 7.0是否會有問題?我們會一直loading  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-10-22 09:19 創世紀計算機
          最新版在IE7中好像沒有問題呀,我前幾天還試了一下~  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-10-22 10:25 nickey's home
          @lynnpeng
          嗯, 沒問題, 我們最近剛用了.  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-11-13 16:54 leisure
          這兩天也在弄xloadtree,參考了樓主的一些方法,表示感謝.
          有個疑問,再次展開樹型節點時,上次選擇的節點的狀態仍然會保存,這是什么原理?為什么會這樣?這兩個js文件看得有些吃力,看來得在js上多花功夫才行  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-11-14 12:01 nickey's home
          @leisure
          對于瀏覽器中的緩存問題,有一個辦法是,在請求的URL里面加上一個Ramdom數,js里面是Math.random();比如
          var url="http://www.sohu.com/?r="+Math.random();

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹[未登錄] 2008-01-10 12:27 oscar
          nickey 你好
          我有一個問題,我現在想模仿bbs.tol24.com的網站,但在過程中遇到一個問題
          1.當初次加載頁面時左側樹可以正常顯示,也就是第一級目錄可正常顯示
          +--文學
          +--歷史
          +--科學
          2.當點擊某“一個”目錄時其下級目錄均可以正常顯示
          +--文學
          +--中國文學
          +--外國文學
          +--歷史
          +--科學
          3.以后除剛才打開的目錄外,在點擊任何目錄就一直在loading...。也就是說只能打開一個目錄,其余的都打不開

          不知道這是什么原因  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹[未登錄] 2008-01-10 12:28 oscar
          nickey 你好
          我有一個問題,我現在想模仿bbs.tol24.com的網站,但在過程中遇到一個問題
          1.當初次加載頁面時左側樹可以正常顯示,也就是第一級目錄可正常顯示
          +--文學
          +--歷史
          +--科學
          2.當點擊某“一個”目錄時其下級目錄均可以正常顯示
          ---文學
          ...+--中國文學
          ...+--外國文學
          +--歷史
          +--科學
          3.以后除剛才打開的目錄外,在點擊任何目錄就一直在loading...。也就是說只能打開一個目錄,其余的都打不開

          不知道這是什么原因  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹[未登錄] 2008-01-10 12:30 oscar
          <script type="text/javascript">
          var tree = new WebFXTree("Root","");tree.setTarget("content");

          <%
          Connection conn = null;
          Statement stmt = null;
          ResultSet rs = null;
          String sTemp = "";
          int i = 0;
          String sql;

          try{

          sql = "select id,name from thin_directory where state = 1 and id like '__' order by sortid";
          conn = dbpool.getConnection(10000);
          stmt = conn.createStatement();
          rs = stmt.executeQuery(sql);

          while(rs.next())
          {
          sTemp = "var cat" + i + "= new WebFXLoadTreeItem(\"<font color=green>" + rs.getString("name") + "</font>\"" + ",\"node.jsp?id=" + rs.getString("id") + "\");";
          //sTemp = "var cat" + i + "= new WebFXLoadTreeItem(\"<font color=green>" + rs.getString("name") + "</font>\"" + ",\"tree.xml\");";
          out.println(sTemp);
          out.println("cat" + i + ".setTarget(\"content\");");
          out.println("tree.add(" + "cat" + i + ");");
          i++;

          }
          }catch(Exception e)
          {
          out.println("left--->" + e.getMessage());
          }
          finally
          {
          stmt.close();
          rs.close();
          dbpool.freeConnection(conn);
          conn = null;
          }
          %>

          tree.write();
          tree.expand();
          </script>  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹[未登錄] 2008-01-10 12:31 oscar
          +++++node.jsp++++++++


          <%
          String id = request.getParameter("id");

          Connection conn = null;
          Statement stmt = null;
          ResultSet rs = null;
          String sql;

          out.println("<?xml version=\"1.0\" encoding=\"gbk\"?>");
          out.println("<tree text=\"\">");

          try{

          sql = "select id,name from thin_directory where state = 1 and id like '" + id + "__' order by sortid";
          conn = dbpool.getConnection(10000);
          stmt = conn.createStatement();
          rs = stmt.executeQuery(sql);

          while(rs.next())
          {
          out.println(" <tree text=\"" + rs.getString("name") + "\" src=\"node.jsp?id=" + rs.getString("id") + "\" target=\"content\"/>");

          }
          }catch(Exception e)
          {
          out.println("node--->" + e.getMessage());
          }
          finally
          {
          stmt.close();
          rs.close();
          dbpool.freeConnection(conn);
          conn = null;
          }
          out.println("</tree>");
          out.close();

          %>
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-15 11:17 nickey's home
          @oscar
          你可以裝一個httpwatch來觀察瀏覽器發送和獲得的信息,來查看返回的內容是否正確.

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-16 11:36 cupid
          <%@page contentType="text/xml;charset=GB2312" language="java" import="java.util.*"%>
          <%@page pageEncoding="UTF-8"%>
          <%
          out.println("<?xml version=\"1.0\" encoding=\"gb2312\"?>");
          out.println("<tree>");
          out.println("<tree text=\"中華人民共和\"/>");
          out.println("<tree text=\"美國人差\"/>");
          out.println("</tree>");
          out.close();
          %>
          /////////////////////////////
          我輸入“中華人民共”奇數個漢字就出錯,怎么回事啊?謝謝
          偶數個漢字就好著呢!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-18 12:02 xpu
          現在的xloadtree都是一次異步調用,再點第2次的時候就不去后臺取數據了,如何實現每次展開時都進行異步調用? 謝謝!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-21 12:54 karlpan
          nickey 你好
          我有一個問題,是在大數據量分層加載的時候遇到,感到有些莫明其妙,請教于您!
          -root (中國)
          |---1 (北京)
          |---2 (河北)
          | |-----2.1 (唐山)
          | |-----2.2 (秦皇島)
          | |-----2.3 (石家莊)
          |---3 (山東)
          | |-----3.1 (濟南)
          | | |-----3.1.1(歷下取)
          | |-----3.2 (青島)
          | |-----3.3 (濰坊)
          我的樹有40000多條數據,是跟當前國家的行政區劃類似,當我做如下操作的時候便會有奇妙的事情發生。
          點擊3,加載數據,子樹展開,然后點擊3.1,加載數據,子樹展開,然后點擊3.1.1 觸發this.action ,合上3.1,合上3(這個時候3的action變成了root的action,之后在點擊3的時候便跟會focus在root上了,3不能被展開了)
          這個事情在root下30多個省的最后幾個發生,在前面的并不會發生,且不是必然的。我跟蹤發現handleEvent: function (e) 在處理click時e發生了不正常的變化。
          不知道您是否曾經遇到類似的問題?xloadtree在多級分層加載是否有著不穩定的問題?您對這種事情有什么建議么?
          非常感謝

            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-22 14:21 karlpan
          問題原因已經找到,是xloadtree在數據量非常大時的bug,事件響應之間的間隔時間太長!導致事件源出錯!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-01-22 16:42 xpu
          oscar 的問題怎么解決阿,請問?  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-06-09 23:22 j2sej2ee
          小輝的問題我也遇到了,在firefox下面沒有問題,在ie里面就不能加載xml文件。請問各位是怎么解決這個問題的啊  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-06-11 14:32 shengnba
          在xloadtree中加右鍵菜單,不知道那位大蝦做過啊....  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-09-03 00:10 luoyexian
          我也遇到這樣的問題.請大蝦們指點下
          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2006-07-26 14:30 poplar
          @nickey's home

          怎么用隨機參數啊?
          我搞了一天也沒有搞定,我是通過servlet從數據庫中取數據,
          但數據庫數據更新了,但目錄樹怎么刷新也更新不了。
          希望每次點擊一個節點的時候能重新從數據庫中取數據。
          我用的web服務器是weblogic 8.14
          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2007-06-30 12:38 kofman
          學習:請問您的隨機參數如何設置呢?
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-10-20 17:08 logo
          每次訪問路徑不同應該就可以了吧,比如后面加個xxx=new Date()之類的  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2008-11-16 21:41 wugang
          nickey's home您好,看了您的文章受益匪淺。
          我在使用xloadtree2的時候碰到這樣一個問題:
          1. 使用tree.add()方法時如果給節點名稱設置中文輸出就會是亂碼,但是我頁面的encoding已經是utf-8了
          2. 如果加載節點時如果生成xml文件則顯示中文為亂碼,但是使用response輸出xml不會有亂碼,response輸出我可以設定字符集為utf-8,想問的是用dom4j如何設定生成xml文檔的encoding?
          3. 我的樹操作會牽扯到新增子節點,刪除節點及移動節點的功能,是否每次操作成功后需要調用tree.reload()這個方法?我看到有個addNode的方法是否可以直接調用?
          4. 想請問一下在樹的節點不是很多(小于100)的情況下,是用生成xml文件的方法好還是直接讀數據庫從response返回的方法好?因為我的APP是使用了8臺機器做級聯的,如果一臺掛了切換另一臺而那上面的文檔和原機器xml文檔不一致那就比較討厭了
          望您可以抽空解疑,謝謝  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹[未登錄] 2008-12-30 16:17
          你好!我想問一下,怎么讀取生成的xml文件
          我在我的工程下,比如說 d:\aaa\bbb\ccc\tree.xml,xmlHttp.open("GET", sSrc, true)中的src該怎么寫?
          我查看了每次都生成tree.xml,但是xmlHttp.responseText和xmlHttp.responseXML讀取的結果都是空字符串,不是null,這個問題該怎么解決?謝謝!  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2009-01-16 15:24 fang
          我現在基本上是上面討論的情況,可是我一點思路也沒有?
          能給點指導嗎? 我的qq:313536145 ,希望能得到指導。  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2009-05-07 09:43 cag2050
          哥們,如解決,給回復啊@roroya
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2009-12-15 14:17 xiaolong
          為什么我用xloadtree的時候根目錄可以。但是生成的子節點的src都不起作用。
          如果把src拿出來單獨訪問。也是可以獲得xml文件的。
          我想請問一下為什么。可以給個解決方案嗎?好像是子節點的src字段沒有被觸發。
            回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2011-02-22 10:31 jiajunchao
          xloadtree在struts2中使用,用IE6打開報腳本錯誤,里面的類找不到,哪位大俠能幫忙解決哈  回復  更多評論
            

          # re: 分析xloadtree, 用ajax實現的動態目錄樹 2014-07-01 23:04 wuzhiwei
          需要指定返回類型
          response.setContentType("text/xml");  回復  更多評論
            

          評論共2頁: 1 2 下一頁 

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 清水河县| 六安市| 营口市| 株洲县| 普兰县| 盐亭县| 潮州市| 湘乡市| 河津市| 衡东县| SHOW| 万载县| 班戈县| 哈尔滨市| 囊谦县| 上虞市| 会东县| 米泉市| 白城市| 新干县| 封丘县| 咸阳市| 那曲县| 六盘水市| 米林县| 罗定市| 安仁县| 丰城市| 襄垣县| 玛多县| 姚安县| 长寿区| 姜堰市| 卓尼县| 南华县| 安吉县| 岳池县| 循化| 龙游县| 高雄市| 夏津县|