我一直未能找到有效的答案。我有一个iframe(是的,我必须在这种情况下使用iframe),它可以在PC上正常工作,但不会在手机或平板电脑上加载。未在手机或平板电脑上加载iFrames
页面上有一些Javascript,但删除它并不能解决问题。我也尝试将iframe的高度和宽度从百分比更改为固定值。我也尝试从iframe中删除除src
以外的所有属性,并且它仍然不加载iframe中的任何内容。
下面是我的页面的简化版本,使用了我从其他建议中可以找到的内容。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta content='width=device-width, initial-scale=1.0' name='viewport'>
<style type="text/css">
body, html
{
margin: 0; padding: 0; height: 100%; overflow: hidden; -webkit-backface-visibility: visible;
}
#content
{
position:absolute; left: 0; right: 0; bottom: 0; top: 0px;
}
</style>
</head>
<body>
<script type="text/javascript">
function onFrameLoad() {
do stuff
};
</script>
<div id="content">
<iframe onload="onFrameLoad(this)" id="app" src="https://subdomain.mydomain.com" frameborder="0" height="100%" width="100%"></iframe>
</div>
</body>
</html>
谁能告诉我为什么它不适用于手机?谢谢
更新:清除平板电脑上的浏览器缓存修复它,但在移动设备上做同样的事情没有做任何事情。我也尝试使用我的朋友的iPhone(他们从来没有访问过该网站),并没有加载。
我想在上演示等网站上我的手机W3Schools的I帧的iframe作品展示,所以它不是一个x-frame options
或浏览器不允许任何Iframe的问题(虽然X框选项会停止工作的所有网址设备,但我检查一切我能想到的)
我可以根据需要通过邮件提供一个活生生的例子URL。
我想我想通了......子站点的URL正在通过CNAME记录第三方托管,他们已经暂时“破”他们的SSL证书,而迁移到新版本。我认为android和iphone浏览器的工作方式与Firefox相同,如果安全站点试图显示混合内容,它就不会显示。如果我使用的浏览器之前没有使用过,那么页面不会显示,但如果我使用了一个我已经使用过的浏览器(即使在清除缓存后),它会显示出来。显然,他们应该在本周完成它,希望能够修复它。 – Lyall
虽然在我的平板电脑上清除缓存后,它仍然显示工作的https版本,一切正常...嗯。混乱。 – Lyall
您是否遵守跨源资源共享(CORS)政策? iframe内容需要在响应中正确设置“Allow-Access-Control-Origin”头部,否则现代Web浏览器将阻止响应以保护用户。 –