2

準備ができていないときに「読み込み中..」を表示するにはどうすればよい<iframe id="pdfViewer" name="pdfViewer" src="foo.pdf"></iframe>ですか? 私はウェブ開発者ではありません。私の最初の試みは、JavaScript を使用して実行することでしたが、次のようになりました。

var xhr = new XMLHttpRequest;
xhr.Open("GET", "foo.pdf");
xhr.onreadystatechange = function()
{
  if(this.readyState == 4) { 
      document.getElementById("container").innerHTML = this.responseText;
   }
}
xhr.send(null);

jQuery ソリューションは使用できないため、ここでは使用できません。

4

2 に答える 2

1

些細な例: jsfiddle.net/G5wkS/

var placeholder = document.createElement('div');
placeholder.textContent = 'Loading...';
document.body.appendChild(placeholder);
var iframe = document.createElement('iframe');
iframe.style.setProperty('display', 'none');
placeholder.parentNode.insertBefore(iframe, placeholder.nextSibling);
iframe.addEventListener('load', function() {
    placeholder.parentNode.removeChild(placeholder);
    iframe.style.removeProperty('display');
});
iframe.setAttribute('src', 'http://127.0.0.1/');

プレースホルダーと iframe (最初は非表示) を作成します。もちろん、これらを HTML に書き出すことも選択でき、独自のスタイルと属性を使用して好きな場所に配置できます。次に、iframe が起動したら、onloadプレースホルダーを取り除き、iframe を再表示します。onerror代わりにイベントが発生する場合は、別のことをしたいかもしれません。

于 2012-06-12T04:22:23.300 に答える
0

別のアプローチを参照してください。オーバーレイの種類の div を作成し、プログラムで iframe の上に配置できます。コンテンツの準備ができたら、オーバーレイを非表示にします。

于 2012-06-12T04:07:36.247 に答える