確定網頁是否載入到iFrame 或瀏覽器視窗
開發基於iframe 的應用程式時,有必要區分是否載入網頁在iframe中載入或直接在瀏覽器視窗中載入。這種理解可以為不同的場景提供客製化的功能。
檢測載入上下文
批准的方法涉及利用window.self 和window.top 屬性:
const inIframe = () => window.self !== window.top;
window.self 屬性:
window.self 指的是目前視窗對象,而window.top 指的是頂層視窗。如果這兩個物件不相同,則表示網頁是在 iframe 內載入的。
解決瀏覽器相容性
在最近的瀏覽器中,此方法得到廣泛支持,允許準確的 iframe 檢測。不過,建議在使用較舊的瀏覽器時務必小心,因為某些瀏覽器可能會因安全限製而阻止存取 window.top。
替代方法
function inIframe () { try { return window.self !== window.top; } catch (e) { return true; } }
解決瀏覽器不一致的問題,另一種方法涉及使用try-catch 區塊:
如果對window .top 的存取被拒絕,則catch block 會捕獲異常並傳回true,表示該網頁可能是在iframe中載入的。以上是如何確定網頁是在 iFrame 還是瀏覽器視窗中載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!