IE瀏覽器javascript除錯
之前的博文,簡單瞭解了一下Dom物件,這一講本想繼續通過程式碼學習Dom,但是本人在寫博文的過程中,寫的程式碼經常出錯,這裡就先介紹一下javascript的除錯方法吧。
- <html>
- <head>
- <title>Demo</title>
- </head>
- <body>
- <formid="form1"action="#">
-
<ahref="http://www.baidu.com/"name="clj"id="baidu">
- <ahref="http://www.google.cn/"name="clj"id="google">谷歌</a></br>
- <ahref="http://www.gougou.com/"name="clj"id="gougou">狗狗</a></br>
- </form>
- <script>
- <!--getElementsByName-->
-
var hrefs
- for (var i=0; i <hrefs.length; i++) {
- var aHref = hrefs[i];
- if (aHref.href.search("http://www.baidu.com") > -1) {
- alert(aHref.href);
- break;
- }
-
}
- </script>
- </body>
- </html>
上面是這次學習主要的程式碼了,我們現在進入到javascript的除錯狀態去看看。
怎麼進入javascript的除錯狀態呢,各瀏覽器的實現是不同的,像火狐瀏覽器有自己的firebug,chrome瀏覽器本身就自帶了除錯。
這裡講一下IE瀏覽器的除錯,畢竟當前瀏覽器市場IE還是佔了很大的份額的。
想在IE瀏覽器中除錯程式碼,可以像java程式碼一樣,給程式碼打斷點。
Javascript中斷點的方式為 debugger 關鍵字,在需要除錯的地方新增上debugger,再開啟javascript的除錯,就可以進入除錯模式了。
接下來,我們演示一下javascript的具體除錯。
首先,將上面的程式碼進行些許改造,在var hrefs = document.getElementsByName("clj"); 上面新增一行debugger;
[javascript] view plain copy- <script>
- <!--getElementsByName-->
- debugger;
- var hrefs = document.getElementsByName("clj");
- for (var i=0; i < hrefs.length; i++) {
- var aHref = hrefs[i];
- if (aHref.href.search("http://www.baidu.com") > -1) {
- alert(aHref.href);
- break;
- }
- }
- </script>
然後開啟該頁面
其次,按下F12,進入開發者模式
開發者模式下,點選指令碼頁籤,點選啟動除錯 按鈕,進入除錯模式
進入除錯狀態後,debugger所在的行會有一個箭頭指向,意味著除錯從這裡開始,就跟java程式碼裡面的breakpoint 一樣。
最後按下F5,重新整理一下頁面,開始除錯。
除錯快捷鍵
除錯的時候,有幾個快捷鍵簡單介紹一下。
F5 繼續
F5繼續除錯,跳到下一個debugger
再改造一下上面的程式碼
[javascript] view plain copy- <script>
- <!--getElementsByName-->
- debugger;
- var hrefs = document.getElementsByName("clj");
- for (var i=0; i < hrefs.length; i++) {
- debugger;
- var aHref = hrefs[i];
- if (aHref.href.search("http://www.baidu.com") > -1) {
- alert(aHref.href);
- break;
- }
- }
- </script>
開始除錯,下圖是剛啟動除錯的程式碼樣子,即按F5之前的樣子。
按下F5之後,程式碼直接從14行調至17行,即下一個debugger斷點的地方,如下圖。
F11 逐語句
F11 逐語句,即每一行程式碼都走
接著上面的斷點,按下F11,繼續除錯
按下F11 後,我們發現斷點向下走了一行,走到了18行。
F11 就是這個作用,一行行的走讀程式碼,除錯程式碼。
F10 逐過程
F10 上面顯示的是逐過程,但是本人在除錯的時候,發現它的作用跟F11相同,都是一行行的走讀程式碼,這裡參考F11的作用就可以了。
如果有朋友知道或瞭解到F10的其它作用,可以跟本人講一下,定虛心學習。
Shift + F11 跳出
Shift + F11 顯示的是跳出除錯,但是在操作過程中,發現它也只是跳到下一個debugger斷點處,即跟F5的作用相似,這裡參考F5即可。
如果有朋友知道或瞭解到Shift + F11的其它作用,可以跟本人講一下,定虛心學習。
斷點行程式碼跟蹤
瞭解了除錯的關鍵字,似乎還不夠用啊。
還不知道走到每一行程式碼,怎麼繼續看變數的具體內容。不急,接下來,我們就看斷點到每一行的時候,我們能做哪些事情。
接著F11 處的程式碼繼續看吧
選中變數aHref ,右鍵看到選單
這裡太多的選單項我們暫時不看了,我們關注新增監視(W) 選單,因為它能讓我們看到具體的變數內容,看到變數有哪些屬性,有哪些方法。
下圖是點選新增監視後的檢視。
因為這一行程式碼還沒走,變數還沒有初始化,所以暫時變數值為undefined,型別為Undefined。
繼續按下F10,
值變為了{…} ,型別變為了DispHTMLAnchorElement。
{…} 表示該變數為物件型別或集合型別
點選aHref 前面的小+ 號,展開aHref 變數,看看有哪些東東。
最上面的是Events ,表示該物件上面有哪些可以繫結的事件。
接下來是Methods ,表示該物件有哪些可以操作的方法。
然後就是可供使用的屬性資訊了,在屬性資訊中,我們可以看到每個具體屬性項的值,看到該項的值是否是我們想要的值,方便理解程式碼,除錯程式碼。
像accessKey 就是一個屬性,對應值為空字串。
all 是個集合屬性,值為{…},點選開後,就可以繼續看all裡面的每項具體屬性值了。
好了,這裡的方法部分介紹完了。
無debugger斷點方法
如果我們拿到的是別人的程式碼,無法繼續新增debugger斷點,怎麼辦呢,直接找到該頁面,新增斷點就可以了。
去掉上面程式碼中的debugger,啟動除錯後,在var hrefs = document.getElementsByName("clj");前面單擊就可以了,單擊後
頁面就出現了斷點,就可以接續按照上面的方法除錯了。
相關推薦
IE瀏覽器javascript除錯
之前的博文,簡單瞭解了一下Dom物件,這一講本想繼續通過程式碼學習Dom,但是本人在寫博文的過程中,寫的程式碼經常出錯,這裡就先介紹一下javascript的除錯方法吧。 <html> <head> <t
IE瀏覽器除錯工具不能使用
Mac 使用VMware Fusion虛擬機器,安裝Windows 7 Service Pack 1 (SP1)。 移除自帶的IE8,下載並安裝IE11(64位)。 IE 11 除錯工具不能使用,並且呼叫IE外掛(AnyChat)提供的API會導致瀏覽器崩潰。 解決方案:安裝補丁 64位系
Chrome - JavaScript除錯技巧總結(瀏覽器除錯JS)
Chrome 是 Google 出品的一款非常優秀的瀏覽器,其內建了開發者工具( Windows 系統中按下 F12 即可開啟),可以讓我們方便地對 JavaScript 程式碼進行除錯。 為方便大家學習和使用,本文我對 Chrome 的除錯技巧做個系統的
IE瀏覽器下OCX控制元件的相容問題(續集)——Javascript程式碼實現
根據上一篇 http://blog.csdn.net/yangyuyu77584/article/details/39694387 博文方案,現給Javascript程式碼實現。 1.瀏覽器的判斷程式碼。(jQuery新版我還沒有使用,不知道是否已經修改了)這裡我自己補充
谷歌瀏覽器安裝firebug lite外掛(輕量級不支援JavaScript除錯)
如果網路狀態允許或者使用者直接在谷歌提供的服務中獲取的Chrome外掛,就可以點選其提供的一鍵跳轉按鈕直接根據提示安裝到Chrome瀏覽器中,這種安裝Chrome外掛的方式最為簡單,但是要求使用者的網路狀態良好,並且使用者可以從谷歌的相關服務中獲取Chro
EasyNVR流媒體伺服器網頁相容除錯:ie瀏覽器下的介面呼叫成功但頁面無法顯示實時的資料
許多問題很難在開發的過程中就想的面面俱到,都是在實際應用、除錯的過程中一一的優化的。由於easynvr的受眾越來越多,因此也出現了好多在開發之初並沒有留意的一些細節。我這次發現的問題就是給客戶遠端解決問題過程中發現的。在此記錄下來方便自己,也方便大家瞭解。
谷歌瀏覽器"審查元素"javascript除錯教程
怎樣開啟Chrome的開發者工具?你可以直接在頁面上點選右鍵,然後選擇審查元素:或者在Chrome的工具中找到:或者,你直接記住這個快捷方式: Ctrl+Shift+I (或者Ctrl+Shift+J直接開啟控制檯),或者直接按F12。開啟的開發者工具就長下面的樣子:不過我一般習慣與點左下角的那個按鈕,將開
如何利用IE進行JavaScript指令碼除錯
做B/S模式的程式好多時候都要用到JavaScript指令碼,它的功能十分強大,但是除錯卻非常麻煩,因為沒有合適的工具,其實IE就支援對JavaScript進行指令碼除錯,只是需要對IE和指令碼進行相應的設定。 1。Internet選項->高階->禁用指令碼除錯 把它後面的隊勾去掉。就使得IE支援
GridView,IE瀏覽器去掉行右邊豎的黑線
alt pan blog nes lis nat img clas src GridView在IE瀏覽器下有黑線。 加上如下屬性 <asp:GridView ID="GridView1" runat="server" CssClass="table-list
IE瀏覽器從頁面向後臺Controller傳中文值出現亂碼問題
亂碼問題 editable com combo url 面向 val textfield bsp 地址前面添加encodeURI() 1、 1 var url = encodeURI(‘xxxAction.action?para=‘+中文); 2 3 $(‘#
js判斷是否為ie瀏覽器
win active spa nbsp 兼容性問題 else -s ont 非ie 之前在開發時遇到瀏覽器的兼容性問題,涉及到對ie瀏覽器的判斷。現在此做個筆記。 這裏我以函數的形式來判斷,在用的時候直接調用即可。 var isIE = !!window.A
chrome-Firefox-IE瀏覽器兼容總結
enter ren ont 標準 距離 tro tac oev turn 作為一名WEB前端程序員,相信每個人對瀏覽器的兼容都"情有獨鐘",下面就一些常用的瀏覽器的兼容列舉一二。 一、塊級元素(block)一般不轉化為inline-block,其實是因為瀏覽器的兼容問題,I
卸載完百度影音以後天氣助手還在,而且總是自己主動打開ie瀏覽器,解決方式
通過 -m == 第三方 post uninstall ria pan xms 今天暴風影音不好用了。我就安裝了百度影音,還有意外發現。相同的視頻,用百度影音看不清楚,然後我就直接卸載了。結果卸掉以天氣小助手還是在,而且總彈白色小框框,各種廣告。最
IE瀏覽器兼容
其他 request對象 shift charset option gamma 同步 element document IE6下面元素的寬高小於16PX時 會默認以16PX顯示(最小寬高) 解決辦法:設置元素overflow:hidden; 當文字全是
兼容ie瀏覽器的方法
但是 hat textarea tar 文檔 wid min-width contain js文件 讓IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解決方法 最近做一個Web網站,之前一直覺得bootstrap非常好,這次使用了bootstr
duilib 的IE瀏覽器控件去邊框和去滾動欄的代碼
del bin als theme type navi pla 觸發 man 轉載請說明原出處,謝謝~~ 近些天在duilib群裏常常有朋友問起,怎麽讓duilib的IE控件能夠去邊框。去滾動欄的問題,或者是怎樣去控件IE控件的行為。為了避
ie瀏覽器中的不同
blog ges 瀏覽器兼容 偶數 org .cn ie6 建議 字號 ie瀏覽器中不支持奇數的單位他自己會取整 IE6會自動把奇數字號+1 ==》 建議使用偶數 瀏覽器兼容詳解 http://w3help.org/zh-cn/causes/ ie瀏覽器中的不同
bootshrap會改變IE瀏覽器滾動條樣式
device 自動隱藏 發現 客戶 ice 現在 出現問題 觀察 css 在某個小網站的開發中客戶一直抱怨在IE11中網頁右邊滾動條不一樣後來發現在IE11中,有2個頁面滾動條會自動隱藏,一開始以為是瀏覽器默認行為,改了overflow:scroll後也沒有用。仔細觀察後發
判斷IE瀏覽器版本
dex agent int app ide ros useragent function soft function IEVer(){ var rv = -1; if (navigator.appName == ‘Microsoft Internet Expl
js判斷是否IE瀏覽器
alert 瀏覽器 str sta spa tar bject art window //ie? if (!!window.ActiveXObject || "ActiveXObject" in window){ //是