嵌入在 iframe 中的 Three.js 在 iOS 8/9 中不断增长

Posted

技术标签:

【中文标题】嵌入在 iframe 中的 Three.js 在 iOS 8/9 中不断增长【英文标题】:Three.js embedded in iframe grows endlessly in iOS 8/9 【发布时间】:2015-12-13 15:06:11 【问题描述】:

如果包含 Three.js 的文件使用 iframe 嵌入到网页中

<iframe id=viewer src=document-with-threejs.html></iframe>

然后,当在 Mobile Safari 中查看页面时,iframe 的大小会无限增长。在今天发布的 ios 9 中,此行为尚未得到纠正。发布此问题和答案是为了便于网络搜索访问信息。

【问题讨论】:

【参考方案1】:

在http://threejs.org/examples/index.html 中找到了此行为的修复程序。截至 2016 年 7 月 3 日的新版本和改进版本:

var viewer = document.getElementById( 'viewer' );

// iOS iframe auto-resize workaround

if ( /(iPad|iPhone|iPod)/g.test( navigator.userAgent ) ) 

    viewer.style.width = getComputedStyle( viewer ).width;
    viewer.style.height = getComputedStyle( viewer ).height;
    viewer.setAttribute( 'scrolling', 'no' );


【讨论】:

以上是关于嵌入在 iframe 中的 Three.js 在 iOS 8/9 中不断增长的主要内容,如果未能解决你的问题,请参考以下文章

NSDT可编程3D场景兼容Three.js

WebGL和three.js的关系是啥样的?

带有 iframe 的嵌入式网站中的 iOS 滚动问题

当鼠标悬停在 Firefox 中的嵌入式 iframe 上时,防止父页面滚动

嵌入 iframe 中的 phonegap 相机捕获

在 iFrame 中嵌入 Google Apps 脚本