gpt4 book ai didi

javascript - 如何从移动设备的 iframe 中找到设备高度?

转载 作者:行者123 更新时间:2023-11-28 03:25:38 24 4
gpt4 key购买 nike

我有一个加载到 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 内部获取视口(viewport)高度(iframe src 是不同的域,因此我无法访问父容器):

document.documentElement.clientHeight

这为我提供了桌面浏览器上的正确视口(viewport);但是,在移动版 safari/chrome 上,我没有获取实际设备高度,而是获取了 iframe 中所有内容的高度。因此,我得到的不是 iPhone 5 上的“460”,而是“3000”。

如何从这个 iframe 中获取可用的视口(viewport)?

最佳答案

所有现代浏览器都不允许从不同域(即不同来源)执行此操作。这就是答案。

为什么你认为什么必须是替代路线?

您只能从您的脚本所在的位置获取信息。因为如果您可以访问例如 Screen 对象和任何其他对象,您就可以访问它的 prototype 链(通过 __proto__)。例如,通过这个链,您可以访问 Object 并重新定义所有对象的所有 getter 和 setter。并从 iframe 控制父页面。而且会失败,脸掌等。

从没有门的房间里寻找导出是天真的。

关于javascript - 如何从移动设备的 iframe 中找到设备高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393317/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com