仔細探究
原來是因為在一個 HTML 頁面內重複引用 swfobject.js 達三次以上
SWFObject 1.4.2 ~ 1.4.4 內均會覆寫 window.onBeforeUnload 事件
並且將舊的事件指定給 oldBeforeUnload 變數
用意是在關閉視窗、跳頁的時候用來清除資料
重複引用 SWFObject 的結果
造成 oldBeforeUnload 變數名稱衝突
window.onBeforeUnload 事件無窮遞迴執行
雖然說對同一個 js file 重複引用是不良的習慣
可是有些情況卻難以避免
尤其像是 SWFObject,幾乎是只要有 Flash 就會用到的東西
類似的事情也有可能發生在不同 javascript 來源