我有幾個頁面主要在iframe中加載。但有時它們會在其外部加載JavaScript錯誤頂部未定義
但是,在外部打開時,top未定義。我知道我可以檢查top是否被定義,如果沒有定義,可以使用self。有沒有更好的辦法?
我有幾個頁面主要在iframe中加載。但有時它們會在其外部加載JavaScript錯誤頂部未定義
但是,在外部打開時,top未定義。我知道我可以檢查top是否被定義,如果沒有定義,可以使用self。有沒有更好的辦法?
似乎window.top
將總是定義(至少在FF和鉻),如果在頁面加載的頂部文件是指window
本身,所以這應不成問題。
OTOH,window.top
不是任何標準的一部分,所以瀏覽器可能會以不同的方式實現它(是的,我正在看你,IE)。更多信息:MDN - window.top
。
如果您有測試,你可以把它緊湊:
(window.top || window.self).location.href = ...;
但頂部=== window.top怎麼會是未定義??默認情況下window.top指window.self如果沒有其他窗口假設 – 2013-05-03 08:03:33
是的,這就是我認爲... ... – 2013-05-03 08:06:56
做了嘗試,如:
if (typeof variable === 'undefined') {
// variable is undefined
}
我不想那樣做 – aWebDeveloper 2013-05-03 08:19:14
'top =先頂||自; top.location.href = ...' – CBroe 2013-05-03 08:03:28
所有的瀏覽器都支持'window.top',但可能不是'top',所以要麼使用上面的評論,要麼使用window.top – 2013-05-03 08:21:10
我知道這不太可能,但是'top'被其他地方覆蓋一個'var top;'? – 2013-05-03 08:43:52