Sinds kort heb ik een eigen domeinnaam met een klein beetje hosting space. Daarop staat de index.html die bestaat uit één frame, welke mijn website op een andere server in dit frame laadt (zodat de domeinnaam dus in de location bar blijft staan).
Nou bestaat mijn website ook uit frames. Ik wil voorkomen dat mensen een pagina opvragen buiten het frame om. Daarvoor heb ik een javascriptje geschreven dat checkt of de juiste frameset aanwezig is en zo niet, de frameset laadt EN vervolgens de oorspronkelijk opgevraagde pagina erin laadt.
Dit laatste gebeurt dmv. een substring die door de oorspronkelijk opgevraagde pagina aan de url wordt toegevoegd (bv. www.alice-in-wonderland.net?alice1.html). Wanneer de frameset geladen wordt, checkt de welkomstpagina (main.html, met een teller erop) op die substring en vervangt zichzelf hierdoor.
Dit is het scriptje dat dat doet:
In het verleden werkte dit prima. Maar nu niet meer. Om het script werkend proberen te krijgen heb ik 'parent' vervangen door 'top' (of parent.parent), omdat ik immers een frameset in een frameset heb. Maar ik krijg de volgende Javascript error:
Maar ik kan niet met zekerheid zeggen dat dit inderdaad ook in mijn situatie het geval is, ik begrijp het stukje namelijk niet 100%.
De search leverde helaas geen topics over dit onderwerp op. Dus mijn vragen:
1. Werkt mijn scriptje inderdaad niet door het 'tainting' probleem, of doe ik gewoon iets fout?
2. Als het door tainting komt, is er dan een manier om toch mijn doel te bereiken?
Alvast ontzettend bedankt!
Nou bestaat mijn website ook uit frames. Ik wil voorkomen dat mensen een pagina opvragen buiten het frame om. Daarvoor heb ik een javascriptje geschreven dat checkt of de juiste frameset aanwezig is en zo niet, de frameset laadt EN vervolgens de oorspronkelijk opgevraagde pagina erin laadt.
Dit laatste gebeurt dmv. een substring die door de oorspronkelijk opgevraagde pagina aan de url wordt toegevoegd (bv. www.alice-in-wonderland.net?alice1.html). Wanneer de frameset geladen wordt, checkt de welkomstpagina (main.html, met een teller erop) op die substring en vervangt zichzelf hierdoor.
Dit is het scriptje dat dat doet:
code:
1
2
3
4
5
6
7
8
9
10
11
12
| <script language="JavaScript">
<!--
function checkorigin()
{
var url = (parent.location.search ? unescape(parent.location.search.substring(1)):'main.html');
if (url != "main.html")
{
window.parent.Main.location.href = url;
}
}
//-->
</script> |
In het verleden werkte dit prima. Maar nu niet meer. Om het script werkend proberen te krijgen heb ik 'parent' vervangen door 'top' (of parent.parent), omdat ik immers een frameset in een frameset heb. Maar ik krijg de volgende Javascript error:
Ik heb het vermoeden dat dit wordt veroorzaakt door "tainting", iets dat ik op deze site las. Dus dat ik de url met substring niet zou kunnen opvragen omdat de frame waarop het scriptje staat, op een andere server staat dan de pagina waaruit ik de location moet opvragen.Error: uncaught exception: Permission denied to get property Window.frames
Maar ik kan niet met zekerheid zeggen dat dit inderdaad ook in mijn situatie het geval is, ik begrijp het stukje namelijk niet 100%.
De search leverde helaas geen topics over dit onderwerp op. Dus mijn vragen:
1. Werkt mijn scriptje inderdaad niet door het 'tainting' probleem, of doe ik gewoon iets fout?
2. Als het door tainting komt, is er dan een manier om toch mijn doel te bereiken?
Alvast ontzettend bedankt!