javascript - 如何在 <iframe ..> </iframe> 未准备好时显示 "loading.."?

标签 javascript html

如何在 <iframe id="pdfViewer" name="pdfViewer" src="foo.pdf"></iframe> 时显示“loading..”还没准备好?我不是网络开发人员。我的第一次尝试是使用 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 解决方案,因为我不会使用它。

最佳答案

简单的例子: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 事件,您可能想做一些不同的事情。

关于javascript - 如何在 &lt;iframe ..> &lt;/iframe&gt; 未准备好时显示 "loading.."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10990362/

相关文章:

javascript - 在 Node.js 中向文件追加行会导致内容以随机顺序写入

javascript - 如何从 JS 数组创建 JS 对象?

php重新加载页面而不发布数据

Jquery 为单个容器单击 Next 和 previous

javascript - getElementById 从段落中返回未定义

javascript - 用户字符串输入如何在React JS功能组件中显示为div中的背景颜色

javascript - React - 从返回条件中删除空 DIV

javascript - 如何迭代包含对象的数组 - javascript

javascript - 动态 DIV 不会因 AJAX 成功而刷新

javascript - 如何从原始元素中删除 Bootstrap 标签输入事件