[英]Why does the 'window.resize' event fire when changing tabs in Chrome (6.0.472.55)?
今晚在Chrome(最新版本6.0.472.55)中為window.onresize
編寫處理程序時遇到了一個有趣的
錯誤
功能。 首先打開兩個標簽,然后在第一個標簽中打開jsFiddle 。
隨意調整窗口大小,對話框將按預期工作。 現在,嘗試切換到第二個選項卡-_-。 更改標簽后,為什么會觸發resize
? 如果我需要提交錯誤,有人可以提供見解/更多詳細信息嗎?
該錯誤已提交給Google。 暫時,我只是忽略了它,因為我的實際onresize
處理程序不顯示警報框。
從錯誤報告 :
當在splitview中使用Dev Tools並切換到Tab,而未在split中打開Dev Tools時,將觸發resize-Event。
因此,如果下一個Tab沒有相同的窗口大小,則將觸發resize()。
那怎么樣呢? 聽起來像個蟲子。 我猜想onresize
被多種行為所監聽,可能是有關頁面大小的新數據,無論出於何種原因,在聚焦標簽時都會出現這種情況。
在我在Windows上使用的版本5.0.375.127中,它不會發生,但是如果我實際調整窗口大小,則resize事件將觸發兩次 。
知道了它的存在,您就可以采取措施擊敗它(Google最終應該為您做)。 僅在事件(據我們所知) 實際發生時才需要發生某些事情時,將if
語句包裝在處理程序周圍,以檢查clientHeight
或clientWidth
的實際更改。
在沒有Chrome如何處理標簽頁切換和頁面呈現方面的實際知識的情況下,我的猜測與下一個家伙一樣好(或壞,取決於您的看法)。 我猜想重新呈現頁面或重新加載已呈現的頁面(如果將其緩存)會觸發onresize
事件。 切換選項卡時會發生這種情況。 按照我的理論,我猜想Chrome不會在初始頁面視圖上觸發resize事件,因為它的設計並非如此。 但同樣,由於我不知道Chrome內部如何處理標簽頁切換,因此這只是猜測(值得深思)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.