Lo del texto sobre la capa no es un problema, se soluciona fácil:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>test</title>
<style>
*{padding:0; margin:0}
html,body{height:100%; width:100%}
#loading{ width:100%; height:100%; background-color:#000; opacity:.7; filter:alpha(opacity=70);zoom:1; position:absolute; z-index:100; display:none}
#loading p{ width:100%;text-align:center; color:#FFF; font-size:15px; font-family:Verdana, Arial, Helvetica, sans-serif; position:absolute; top:50%; font-weight:bold}
</style>
<script>
function $(id){
return document.getElementById(id);
}
var asignar=setInterval(function(){
try{
var padreDoc=$('padre').contentDocument || $('padre').contentWindow.document;
var hijo=padreDoc.getElementById('hijo');
}catch(e){
}
if(hijo && typeof hijo!='undefined'){
if(window.ActiveXObject){//explorer
$('loading').style.display='none';
hijo.onreadystatechange=function(){
$('loading').style.display='block';
if(hijo.readyState=='complete'){
$('loading').style.display='none';
}
}
clearInterval(asignar);
return;
}
try{//safari
if (navigator.userAgent.indexOf('Safari') != -1){
var docNieto=hijo.contentDocument || hijo.contentWindow.document;
var sc=docNieto.createElement('script');
sc.text='self.onunload=function(){top.$("loading").style.display="block";}';
docNieto.body.appendChild(sc);
$('loading').style.display='none';
}
}catch(e){}
hijo.onload=function(){
var docNieto=hijo.contentDocument || hijo.contentWindow.document;
var sc=docNieto.createElement('script');
sc.text='self.onunload=function(){top.$("loading").style.display="block";}';
docNieto.body.appendChild(sc);
$('loading').style.display='none';
}
clearInterval(asignar);
}
},10);
</script>
</head>
<body>
<div id="loading"><p>cargando...</p></div>
<iframe id="padre" src="hijo.html?hdh" width="500" height="500"></iframe>
</body>
</html>
Agregué una pequeña mejora para que funcione bien en Safari sin afectar al resto. Creo que es la solución que menos trabajo posterior implica, pero sobre gustos...