簡體   English   中英

如何在移動設備上的iframe內部找到設備高度?

[英]How can I find the device height from inside an iframe on mobile?

我有一個在iframe中加載的應用。 代碼看起來像這樣(示例):

<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
</head>
<body>
    <iframe src="app_url_on_a_different_domain" height=100% width=100%>
        <html>
            <head>
                <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
            </head>
            <body>...</body>
        </html>
    </iframe>
</body>
</html>

我正在嘗試通過執行以下操作從iframe內部獲取視口高度(iframe src是一個不同的域,因此我無法訪問父容器):

document.documentElement.clientHeight

這為我在桌面瀏覽器上提供了正確的視口。 但是,在移動Safari / Chrome瀏覽器中,我沒有獲取實際設備的高度,而是獲取了iframe中所有內容的高度。 因此,我得到的不是“ iPhone 5”上的“ 460”,而是“ 3000”。

如何從此iframe中獲取可用的視口?

所有現代的瀏覽器均不允許來自不同域(即不同來源)的操作。 這就是答案。

為什么您認為必須選擇替代路線?

您只能從腳本的來源獲取信息。 因為如果您可以訪問例如Screen對象和任何其他對象,則可以訪問它的prototype鏈(通過__proto__ )。 例如,通過此鏈,您可以訪問Object並重新定義所有Object所有getter和setter。 並從iframe控制父頁面。 這將是失敗,facepalm等。

天真地找到沒有門的房間的出口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM