我一直未能找到有效的答案。我有一個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瀏覽器將阻止響應以保護用戶。 –