Javascript 如何使IE8在onload元素完成之前不向iFrame显示任何内容?

Javascript 如何使IE8在onload元素完成之前不向iFrame显示任何内容?,javascript,iframe,internet-explorer-8,coding-style,onload,Javascript,Iframe,Internet Explorer 8,Coding Style,Onload,我想隐藏在iFrame中加载的网站元素。脚本和站点可能需要一段时间,因此请求仅在修改iFrame内容后显示iFrame内容 我使用onload事件来执行隐藏元素的脚本。我可以访问iFrame内容(它在同一个域上,但不在同一个服务器/网络上) 简单的睡眠功能: function sleep(milliSeconds){ var startTime = new Date().getTime(); // get the current time while (new Date().getTime()

我想隐藏在iFrame中加载的网站元素。脚本和站点可能需要一段时间,因此请求仅在修改iFrame内容后显示iFrame内容

我使用onload事件来执行隐藏元素的脚本。我可以访问iFrame内容(它在同一个域上,但不在同一个服务器/网络上)

简单的睡眠功能:

function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + milliSeconds); // hog cpu
}
函数睡眠(毫秒){
var startTime=new Date().getTime();//获取当前时间
while(new Date().getTime()
首次加载带有iFrame的网站时,会显示滚动条和一些样式化元素,但不会显示内容文本:

脚本完成后,页面将按原样显示(蓝色div变为隐藏):

脚本运行时,不应显示任何内容。一个空的iframe或整个网站等待onload完成就足够了。

您可以将
隐藏在父页面加载上,并在iframe的
onload
事件中将此设置为可见:

function frameLoaded() {
  sleep(3000); //simulating the time the script needs
  var leftDiv = window.frames.testFrame.document.getElementById("leftcol");
  leftDiv.style.display = "none";
  document.getElementById("iframe").style.display = 'block';
}

顺便说一句:这个睡眠功能应该扔掉。

你是在自己的网站上加载的吗?还是第三方网站?我之所以问这个问题,是因为如果你能在IFrame中加载一些javascript到站点,你可以在下面的一行document.body.onload=function(){parent.frameLoaded();}中添加一些javascript,然后去掉所有的休眠函数调用。它是第三方的。睡眠只是为了模拟“长”的脚本执行时间。显然,剧本很可能需要一些时间。这将相当复杂,而且SmartPhonesHanks也可以访问它,我自己可能已经想到了>function frameLoaded() { sleep(3000); //simulating the time the script needs var leftDiv = window.frames.testFrame.document.getElementById("leftcol"); leftDiv.style.display = "none"; document.getElementById("iframe").style.display = 'block'; }