In de pagina die in het frame staat dit zetten:
JavaScript:
1
2
3
| if (top == self) {
location = '[frameset]';
} |
Op de plek van [frameset] de URL van de framesetpagina
------------------------------------------------
Je kunt het nog uitbreiden, zodat de framesetpagina wel weer de framepagina waar de bezoeker was automatisch weer in het juiste frame laadt:
in framepagina:
JavaScript:
1
2
| if (top == self) {
location = '[frameset]'?inframe='+self.location.href; |
in frameset:
JavaScript:
1
2
3
4
| wls = window.location.search;
if (wls.length > 0) {
[framenaam].location.href = wls.substring(9,wls.length);
} |
Hierbij voegt de code in de framespag dus ?inframe=blabla.html o.i.d. toe aan het URL van de framesetpagina, waarin vervolgens de javascript die blabla.html uitleest.
Als je echter al iets gebruikt waardoor er al variabelen uit een form o.i.d. via GET worden verstuurd, en er dus al ?a=b&c=d o.i.d. achter de URL staat werkt dit niet helemaal, aangezien dan het uitlezen via Javascript wat lastiger is. Dat is dan echter niet echt een probleem, aangezien je het dan ook wel zal kunnen uitlezen met de desbetreffende serversidetaal (PHP bijvoorbeeld).
------------------------------------------------
Je kan trouwens aanvullend ook nog het volgende in de framesetpagina zetten, zodat die zich juist uitbreekt als-ie zelf op zijn beurt in een frameset wordt geopend.
JavaScript:
1
2
3
| if (top != self) {
top = self;
} |
(als ik me niet vergis)
Het kan bijvoorbeeld dat een andere website die zelf uit een frameset bestaat, linkt naar jouw site, en dan jouw site in een frame opent, waardoor jouw site te weinig ruimte krijgt. Het voorgaande scriptje zorgt dat je dan het hele venster neemt.
Wat je ook kan doen is in dat geval een nieuw venster openen met je site, zodat de website waar de bezoeker vandaan komt niet verdwijnt.
Dan zou het worden:
JavaScript:
1
2
3
| if (top != self) {
blank = self;
} |
[
Voor 0% gewijzigd door
wicher|IA op 07-10-2002 21:12
. Reden: wls.substring(9,wls.length) <- 9 ipv 1; daarna verdere aanvullingen ]