摘要:在瀏覽器中,指代一個對象,始終指向最高層框架,也就是瀏覽器窗口。當頁面中存在框架時,從出發,可以幫助很快得找到想要引用的框架。如果頁面不包含框架,即最外層就是唯一的窗口,此時是的一個屬性,指向本身。也就是,給定義的事件也會執行。
問題
今天幫人家修Bug,頁面大體是這樣:有四個按鈕,對應上下左右四個方向,點擊哪個就使頁面上的某個元素向相應方向移動。這本來是個很簡單的頁面;
代碼大體如下:
htmltopbottomleftright
每一個onclick事件中本來是有更多的代碼的,但是最后找bug找瘋掉了,不斷的刪掉代碼,刪到這個樣子,問題還是存在:無論點擊哪個,"top"也會被彈出,也就是說,top的onclick也被觸發了!
錯誤定位萬般無奈之下,只好試試彈出top到底是啥,一看到結果一下子就想到什么原因了。
在瀏覽器中,top指代一個對象,始終指向最高層框架,也就是瀏覽器窗口。
1. 當頁面中存在框架時,從top出發,可以幫助很快得找到想要引用的框架。
2. 如果頁面不包含框架,即最外層window就是唯一的window窗口,此時top是window的一個屬性,指向window本身。
javascripttop == window.top;//true top == window;//true window == window.top;//true
然而!然而我們是可以給top賦值的,雖然這樣的操作是無效的,原來top引用的窗口對象并不會被覆蓋,但是瀏覽器也并不會報錯!(所以其實能讓瀏覽拋出異常的錯誤一般來說是比較好修正的,因為提示的錯誤信息已經能指明問題所在了。)
錯誤原因這樣之前那個頁面的問題就很清楚了,點擊了任何div后,最終事件都會冒泡到window窗口上。也就是,給top定義的onclick事件也會執行。
事后回頭想想,debug的思路其實很清晰的,之前已經確定了top的onclick事件會很奇怪的執行,那么我們看看top到底是啥,這是個很自然的思路;也不會折騰那么久吧。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/91518.html
摘要:變量用的好或不好,和代碼質量有著非常重要的聯系。簡而言之,匈牙利命名法就是把變量的類型縮寫,放到變量名的最前面。很多情況下,使用匈牙利命名法是個不錯的主意,因為它可以改善你的代碼可讀性,尤其在那些變量眾多同一類型多次出現時。 歡迎大家前往騰訊云+社區,獲取更多騰訊海量技術實踐干貨哦~ 本文由鵝廠優文發表于云+社區專欄作者:朱雷 | 騰訊IEG高級工程師 『Python 工匠』是什么?...
摘要:文件名字支付寶頁面標題導航欄背景色是否允許下拉刷新默認頁面是否支持縱向拽拉超出實際內容。請求數據請求支付寶的請求是如果需要設置支付寶為微信是參數不同如果是請求,需要給的值加上最終為 ①支付寶創建個人身份 【假如想要變成公司項目的 小程序管理員,千萬千萬不要變成==自研開發者==】 會設置不了的 ②支付寶的緩存機制 setStorageSync 【設置本地存儲】 my.setStor...
摘要:常見應用場景現在的界面基本都是大同小異宮格布局現在基本成了每個必然的存在帶邊框常用在功能導航頁面無邊框常用在首頁分類設計目標在環境下通過實現宮格并且可以支持有無邊框和每個格是否正方形有邊框且每個格為正方形無邊框最終效果百分比小技巧先解釋一個 常見應用場景 現在的APP界面基本都是大同小異, 宮格布局現在基本成了每個APP必然的存在. 帶邊框, 常用在功能導航頁面 showImg(htt...
摘要:就會給起名表示求和函數,漸漸地知道最好用英語給變量或者是函數名起名字,盡管有時候英語不好,那就翻翻有道吧。所以有一段時間的命名是很長的兩三個單詞的駝峰法命名。 什么鬼,又不知道怎么命名class了直接進入正文 記得大一學C語言的時候,那個時候根本沒把這當回事吧。所謂的混沌階段變量名,函數名,隨意吧,那個時候寫簡單地c程序,就好像寫著玩,就算復雜點得也不過一二百行,所以變量名什么的,可能...
閱讀 2970·2023-04-25 17:46
閱讀 3594·2021-11-25 09:43
閱讀 1100·2021-11-18 10:02
閱讀 3058·2021-10-14 09:43
閱讀 2776·2021-10-13 09:40
閱讀 1529·2021-09-28 09:35
閱讀 2190·2019-08-30 15:52
閱讀 3161·2019-08-30 14:06