成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

頁面中千萬不要給變量起名top!一次艱難的Debug之路

Ryan_Li / 1508人閱讀

摘要:在瀏覽器中,指代一個對象,始終指向最高層框架,也就是瀏覽器窗口。當(dāng)頁面中存在框架時,從出發(fā),可以幫助很快得找到想要引用的框架。如果頁面不包含框架,即最外層就是唯一的窗口,此時是的一個屬性,指向本身。也就是,給定義的事件也會執(zhí)行。

問題

今天幫人家修Bug,頁面大體是這樣:有四個按鈕,對應(yīng)上下左右四個方向,點擊哪個就使頁面上的某個元素向相應(yīng)方向移動。這本來是個很簡單的頁面;
代碼大體如下:

html

top
bottom
left

每一個onclick事件中本來是有更多的代碼的,但是最后找bug找瘋掉了,不斷的刪掉代碼,刪到這個樣子,問題還是存在:無論點擊哪個,"top"也會被彈出,也就是說,toponclick也被觸發(fā)了!

錯誤定位

萬般無奈之下,只好試試彈出top到底是啥,一看到結(jié)果一下子就想到什么原因了。

在瀏覽器中,top指代一個對象,始終指向最高層框架,也就是瀏覽器窗口。
1. 當(dāng)頁面中存在框架時,從top出發(fā),可以幫助很快得找到想要引用的框架。
2. 如果頁面不包含框架,即最外層window就是唯一的window窗口,此時topwindow的一個屬性,指向window本身。

javascripttop == window.top;//true
top == window;//true
window == window.top;//true

然而!然而我們是可以給top賦值的,雖然這樣的操作是無效的,原來top引用的窗口對象并不會被覆蓋,但是瀏覽器也并不會報錯?。ㄋ云鋵嵞茏尀g覽拋出異常的錯誤一般來說是比較好修正的,因為提示的錯誤信息已經(jīng)能指明問題所在了。)

錯誤原因

這樣之前那個頁面的問題就很清楚了,點擊了任何div后,最終事件都會冒泡到window窗口上。也就是,給top定義的onclick事件也會執(zhí)行。

事后回頭想想,debug的思路其實很清晰的,之前已經(jīng)確定了toponclick事件會很奇怪的執(zhí)行,那么我們看看top到底是啥,這是個很自然的思路;也不會折騰那么久吧。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/91518.html

相關(guān)文章

  • Python 工匠:善用變量來改善代碼質(zhì)量

    摘要:變量用的好或不好,和代碼質(zhì)量有著非常重要的聯(lián)系。簡而言之,匈牙利命名法就是把變量的類型縮寫,放到變量名的最前面。很多情況下,使用匈牙利命名法是個不錯的主意,因為它可以改善你的代碼可讀性,尤其在那些變量眾多同一類型多次出現(xiàn)時。 歡迎大家前往騰訊云+社區(qū),獲取更多騰訊海量技術(shù)實踐干貨哦~ 本文由鵝廠優(yōu)文發(fā)表于云+社區(qū)專欄作者:朱雷 | 騰訊IEG高級工程師 『Python 工匠』是什么?...

    seanHai 評論0 收藏0
  • 支付寶小程序爬坑之路【1】

    摘要:文件名字支付寶頁面標(biāo)題導(dǎo)航欄背景色是否允許下拉刷新默認(rèn)頁面是否支持縱向拽拉超出實際內(nèi)容。請求數(shù)據(jù)請求支付寶的請求是如果需要設(shè)置支付寶為微信是參數(shù)不同如果是請求,需要給的值加上最終為 ①支付寶創(chuàng)建個人身份 【假如想要變成公司項目的 小程序管理員,千萬千萬不要變成==自研開發(fā)者==】 會設(shè)置不了的 ②支付寶的緩存機(jī)制 setStorageSync 【設(shè)置本地存儲】 my.setStor...

    Harpsichord1207 評論0 收藏0
  • css如何實現(xiàn)n宮格布局?

    摘要:常見應(yīng)用場景現(xiàn)在的界面基本都是大同小異宮格布局現(xiàn)在基本成了每個必然的存在帶邊框常用在功能導(dǎo)航頁面無邊框常用在首頁分類設(shè)計目標(biāo)在環(huán)境下通過實現(xiàn)宮格并且可以支持有無邊框和每個格是否正方形有邊框且每個格為正方形無邊框最終效果百分比小技巧先解釋一個 常見應(yīng)用場景 現(xiàn)在的APP界面基本都是大同小異, 宮格布局現(xiàn)在基本成了每個APP必然的存在. 帶邊框, 常用在功能導(dǎo)航頁面 showImg(htt...

    sarva 評論0 收藏0
  • (css/js)如何起個好名字

    摘要:就會給起名表示求和函數(shù),漸漸地知道最好用英語給變量或者是函數(shù)名起名字,盡管有時候英語不好,那就翻翻有道吧。所以有一段時間的命名是很長的兩三個單詞的駝峰法命名。 什么鬼,又不知道怎么命名class了直接進(jìn)入正文 記得大一學(xué)C語言的時候,那個時候根本沒把這當(dāng)回事吧。所謂的混沌階段變量名,函數(shù)名,隨意吧,那個時候?qū)懞唵蔚豤程序,就好像寫著玩,就算復(fù)雜點得也不過一二百行,所以變量名什么的,可能...

    Rainie 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<