3

iframe の読み込み中に表示するには、読み込み中の GIF が必要です。
これは私が思いついたものです:

<div id="m-load" style="position:relative;top:45%;left:45%;">
<img src="images/loader.gif"/></div>
<iframe src="http://myserver.com/myfile.html" id="m-iframe"></iframe>

そして、入力したiframeソースファイルに:(myfile.html)

<head>
<script>
top.document.getElementById('m-load').style.display ="none";
</script>
</head>

しかし、これは Firefox では機能しません (許可が拒否されました)。
これを達成する他の方法はありますか?

4

2 に答える 2

6

次のように、すべての iframe が読み込まれた後に発生するイベントを使用して、同じページでそれを行う必要があります。onload

// show loading image

window.onload = function(){
  // hide loading image
}

<img id="img" src="images/loader.gif"/></div>

<script>
window.onload = function(){
   document.getElementById('img').style.display = "none";
}
</script>
于 2012-06-11T11:55:06.027 に答える
1

iframes親コンテンツに勝手にアクセスすることは許可されていません。ハッカーがあなたのページに脆弱性を発見したとします (たとえば、iframeどんな目的でも s を許可するコメント フォームがあるとします。ハッカーが親にアクセスできれば、サイト全体を歩き回ることができます。

代わりに を使用できますpostMessage。ページと iframe の両方が通信方法と有効な通信を構成するものについて合意したため、ページへの恣意的なアクセスはありません。http://robertnyman.com/2010/03/18/postmessage-in-html5-to-send-messages-between-windows-and-iframes/に優れたチュートリアルがあります。

于 2012-06-11T11:57:00.697 に答える