pength

          少壯不努力,長大做I.T,現在買房連首付都沒有。。。。
             ::  ::  :: 聯系 ::  :: 管理

          JavaScript 對象不支持此錯誤和方法

          Posted on 2010-03-01 09:22 彭天皓 閱讀(545) 評論(0)  編輯  收藏 所屬分類: java --ssh

              前幾天做的項目,今天老大點擊查看的時候 js出錯,只能重新請求,在來一次,由于是級聯的,就是上面的做了才能做下面的,而js 出錯會對操作造成非常不便。
          我的開發框架是ssh。

              我調用的js
                function search_report() {
                        var form = document.getElementById("form1");
                        form.action = "search_report.action";
                        form.submit();
           }

             調用的鏈接:
                 <a href="#" onclick="search_report()">查詢</a>
          如果你看到這里就知道這個js為什么出錯,那么這篇文章完全是在浪費你的時間。
              
          錯誤答案是:
              我們點擊一次查詢后,在點擊查詢就會抱這個錯誤:

              那我把鏈接改為:
          <a href="javascript:search_report()">查詢</a>
          則不會報任何錯誤。
          當然做到這里也算問題解決了,可是為什么會出現這種錯誤呢?
          根據比較,我覺得是 href=“#” 惹得禍,所以
          我到google上百度了一下,找到這篇文章:
          http://www.cnblogs.com/xiang/archive/2006/09/05/495828.html
          文章中這么說:
                      #包含了一個位置信息       默認的錨點是#top 也就是網頁的上端     而javascript:void(0)  僅僅表示一個死鏈接

                      這就是為什么有的時候頁面很長瀏覽鏈接明明是??墒?nbsp;  跳動到了頁首

                      而javascript:void(0) 則不是如此          所以調用腳本的時候最好用void(0)          或者<input onclick>  <div onclick>等

          看了之后,真的是這樣的嗎?我仍然持懷疑態度,也沒搞明白就跑去問項目經理
                     后來經項目經理用火狐瀏覽器跟蹤調試之后發現事實并非如此,(火狐調試我還不怎么熟悉,我還只是 初學者
          原來是由于 請求名和js方法名 同名造成的。因為瀏覽器緩存會記錄上次請求的記錄,當我第一次點擊時,瀏覽器真確找到了 該方法,但
          當我第二次點擊的時候 就會找不到此方法,原來是 search_report 和 search_report.action 即 方法名和請求名是一樣的,由于瀏覽器的緩存處理,瀏覽器把search_report當做是請求來做 當然找不到js方法了,修改方法 就是 把方法名和請求名改成不同的 就可以了。所以在做ssh開發  的時候 javascript 里的方法 最好不要和 請求名(*.action)一樣,如果要一樣就使用<a href="javascript:search_report()">查詢</a>,否則會造成客戶端錯誤,帶來不必要的麻煩。

          主站蜘蛛池模板: 凌云县| 潍坊市| 资溪县| 西华县| 巢湖市| 宜兰市| 太和县| 新安县| 阜新| 招远市| 梅州市| 镇康县| 达拉特旗| 海阳市| 天峨县| 大方县| 山东省| 武汉市| 永泰县| 平陆县| 和龙市| 绥芬河市| 伊春市| 镇巴县| 都匀市| 宁国市| 苗栗市| 招远市| 湟中县| 抚远县| 定日县| 安庆市| 湄潭县| 融水| 阿拉善右旗| 阿城市| 临澧县| 拜城县| 新巴尔虎左旗| 汤阴县| 昌乐县|