うまくいく答えを見つけることができませんでした。私はiframeを持っています(はい、この機会にiframeを使用する必要があります)。PCでは正常に動作しますが、モバイルやタブレットにはまったく読み込まれません。
ページにいくつかのJavascriptがありますが、それを削除しても問題は解決しません。また、iframeの高さと幅をパーセンテージから固定値に変更してみました。また、src
以外のすべての属性をiframeから削除しようとしましたが、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>
なぜモバイルで動作しないのか誰にも教えてもらえますか?ありがとう
PDATE:タブレットのブラウザキャッシュをクリアすると、その問題は修正されましたが、モバイルでも同じことをしても何もしませんでした。また、友人のiPhoneを使用してみました(以前にサイトにアクセスしたことがないため)が、ロードされませんでした。
Iframeで表示しようとしているURLは、モバイルのw3schoolsなどのデモサイトのiframeで機能するため、x-frame options
またはブラウザでiframeの問題が許可されません(ただし、x-frameオプションはすべてのデバイスで動作を停止しますが、考えられるすべてをチェックしました)
必要に応じて、メッセージを介してライブURLの例を提供できます。
問題は私が思っていたとおりでした-iframeのURLはいくつかの安全でない要素を呼び出していて、モバイルとタブレット(およびデスクトップ上のFirefox)の特定のブラウザはコンテンツが安全と非安全の間で混在していると何も表示されません(私のドメインはすべてhttps)。
これらが修正され、すべてが安全にホスト/呼び出されるようになったため、キャッシュを完全にクリアしてページをリロードすると、モバイルブラウザーでも問題が修正されます。
モバイルではなくタブレットで動作していた理由は、純粋にタイミングと異なる要素のhttpsリンクが壊れたとき(代わりにhttpにリダイレクトするとき)と異なるページがキャッシュされたときだけでした。
モバイルサファリとクロムを使用したテストの時点では、ホストページでhttpまたはhttpsが使用されていても、iframeのURLはhttpsを使用する必要があります。 http iframeはまったく読み込まれません。
IOSのWebViewを介したiframeおよびクロスドメインアクセスで同様の問題に直面しました。問題は、問題を引き起こしていたCookieの受け入れにありました。
問題は、以前NSHTTPCookieAcceptPolicyAlwaysにデフォルト設定されていたUIWebViewのCookieセキュリティポリシー(HTTPCookieAcceptPolicy)でした。
しかし、iOS 7からNSHTTPCookieAcceptPolicyOnlyFromMainDocumentDomainにデフォルト設定され、アプリが壊れました。
あなたの問題は同じようには見えませんが、同様の行にある可能性があります。