Máš pravdu, teď jsem to zrovna zjistil.
Byl jsem inspirován tou časovací nádherou, sestavil jsem takový modul
(mimochodem - hodil by se do toho tvého objektu s komfortními metodami.
Tady je moje testovací stránka:
<html><head><meta http-equiv="content-type" content="text/html; charset=charset=utf-8" /></head>
<html>
<head> <title> Stránka s IRAME </title> </head>
<body>
<iframe src=""></iframe>
<a href="javascript:alert('After change iframe src \n iW.location=' +iW.location)"> ukaz adresu v iframe </a>
<a href="javascript:alert(' ZRUŠIT => GOOGLE '); window.location='http://www.google.com'"> KONEC - nahrej google </a>
<h6 id="output"></h6>
<script>
function add(s){document.getElementById("output").innerHTML+=s+""}
function zpracuj(pauza,list,update){ /*
var akce=list.shift(); var activity=true;
if (typeof(akce)=="string") eval(akce); else
if (typeof(akce)=="function") akce(); else
if (typeof(akce)=="number") {
activity=akce>0; if(akce=(akce-activity?1:-1)) list.unshift(akce);
}
if (typeof(akce)=="boolean") if (!akce) list.unshift(akce);
if(activity) if (typeof(update)=="string") eval(update); else
update();
if (list!=[]) setTimeout(function(){zpracuj(pauza,list,update)},pauza);
}
var
iW = frames[0],
URL= URL3 = window.location.href, /* vnořené rámy v rámech v rámech... => zdroj dalších problémů */
URL2 = 'http://www.google.com/support', /* cizí lokace => browser odmítne přístup k iW.location */
URL1 = 'file://localhost/C:/jsexam/blank.html'; /* malý dokument ze stejné (local) složky; synchronizace v čase < 1ms */
zpracuj(1,["add('EXECUTE: iW.location='+URL+'<hr />');iW.location=URL",15,
"if (confirm(' ZRUŠIT STRÁNKU => GOOGLE ')) window.location='http://www.google.com'"],"add('FRAME/LOCATION:'+iW.location)");
</script>
</body>
</html>
Podle toho jak test dopadne se dají URLs vkládané do location rámu rozdělit do 3 skupin = přístupné, nepřístupné a můj případ=url vlastní stránky.
Jedině Opera to stopne, ostatní rekursivně v rámech pokračují - nevím po kolikátou úroveň - asi furt dál. Já na to zapomněl, a časovací funkce, nastavená na 15 procesů á 1ms, se po pár řádcích zpomalila až jsem marně čekal na další řádek. Ještě že jsem prozíravě umístil na stránku odkaz s googlem, který zůstavá funkční (na rozdíl od čehokoliv ve Firefoxu = VŠECH 5 OKEN NEODPOVÍDÁ).
Výsledek:
1.step = about:blank
2.,3.,..step = file://localhost/C:/jsexam/tst.html
Takže asi 1ms u téhle prťavé stránky (u větší to bude víc, že ?)
Stejně tento způsob nemůžu použít - jednak rekurse a hlavně objekt Location má pouze pathname - dál to nedělí (jako to má aplikační JS na windows u souborového objektu)
VYŘEŠENO PŘES REG.EXP.
function FCss(){
var src = document.styleSheets[0].href;
if (!/\/\//.test(src)){src=window.location.href.replace(/[^/]+$/,"")+src.replace(/^\.?\//,""); }
if (/MSIE/.test(navigator.userAgent)) window.location=src;
else {
iFfoot.style.display="none";
iFview.style.display="block";
iFview.style.height=document.body.clientHeight+"px";
iFwin.location=src; }
document.body.scrollTop=document.body.scrollHeight-document.body.clientHeight;
window.scrollTo(0,document.body.scrollHeight-document.body.clientHeight);
}