在 Web 開發中,可能需要確定網頁是在 iFrame 內載入還是直接載入到瀏覽器視窗中。這種差異可能會對網頁的行為和功能產生影響。
辨識這種差異的一種方法是比較 window.self 和 window.top 物件。在直接載入到瀏覽器視窗中的網頁中,這兩個物件將引用相同的視窗物件。但是,當在 iframe 中載入時,window.self 將引用 iframe 窗口,而 window.top 將引用父窗口。
要以可靠的方式檢查這一點,可以使用以下程式碼:
const inIframe = () => window.self !== window.top;
但是,需要注意的是,儘管這種方法在大多數瀏覽器中都很可靠,但它可能會受到跨網域限制的影響,尤其是在Internet Explorer 中。因此,仔細處理潛在的錯誤非常重要。
更新(2024):
根據跨域腳本 API 存取的文檔,window.self 和 window .top 包含在允許的跨域屬性中。這表示以下程式碼應該提供更一致且可靠的方法來偵測 iFrame:
const inIframe = () => window.self !== window.top;
以上是我的網頁是直接載入還是在 iFrame 內載入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!