10. april 2002 - 19:41Der er
12 kommentarer og 2 løsninger
forhindre fremmede sider i ens frameset
der er scripts der kan forhindre at ens egen side loades i et fremmed frameset, men hvordan forhindrer man at en fremmed side loader i ens eget frameset? jeg har aldrig set det før, men i dag havde jeg (fra et link på mine egne sider) åbnet et site hvor der i venstre ramme var en række links til andre steder på dette fremmede site. underligt nok åbnede disse sider i mit frameset (i baggrunden) i stedet for i sit eget. ved at se på kilden i den venstre ramme i det fremmede site med linkene kunne jeg se at der ikke var sat noget target, men skulle man så ikke normalt forvente at hans sider så bare ville åbne i hans egen venstre ramme, hvori linkene var placeret???
prøv det evt. selv ved at gå ind på www.dahr.dk (mit site), klik på billedet med buddhistmunkene i venstre ramme (når det vises - det er det andet eller tredje i serien), og klik så på hans danske eller engelske flag. se så om denne side åbner i mit frameset.
det er fordi den anden side der går ind i, har en frame af samme navn som den frame den går ind i på din side - intet at gøre så vidt jeg ved... Eneste er at de link du selv laver, er i et nyt frameset eller top, men det ved du jo :)
forstår det ikke: at min hovedramme har samme navn som hans, forklarer vel ikke at hans sider åbner i min hovedramme i stedet for i hans egen, når nu begge sites er åbne. hans sider skal trods alt hoppe ud af deres eget domæne og over i et fremmed. det er da en omvej. men browseren går måske udelukkende efter framenavn? underligt at jeg så ikke har oplevet det før. "main" er trods alt et ret almindeligt navn for en ramme.
// Åbn linkene i nyt vindue function newOpen() { win=window.open(imageURLs[thisImg], "win", "width=700,height=500,toolbar=yes,directories=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); win.focus(); }
første linie opretter en variabel win i sidens window-objekt linie bruger samtidig navnet "win" som det navn de nyåbnede winduesobjekt skal have.
linien opretter 2 'win' med essentielt samme formål, og så kan IE nok få svært ved at skelne imellem dem.
Prøv at rette koden ovenfor til:
// Åbn linkene i nyt vindue var mik789win; // fortæller udtrykkeligt at variablen // skal oprettes i vinduets scope. function newOpen() { mik789win=window.open(imageURLs[thisImg], "mik987win", "width=700,height=500,toolbar=yes,directories=yes,location=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes"); mik789win.focus(); }
Nu er de to navne forskellige og vi har sikret at navnet mik789win er en vartiable i vinduet og ikke lokal til funktionen som den ellers godt kunne blive.
Problemet er, at din hovedframe hedder 'main'. Hans hedder 'Main' og burde derfor ikke kunne forveksles ... *men* han kan ikke sdavø og har sat en base-target i sin venstre frame til netop 'main'. Derfor vil siden åbne i den frame, der hedder 'main' ... din hoved-frame.
Hvis folk indså, der ligger 100.000 framesets på WWW med en frame, der hedder 'main' - og begyndte at bruge lidt mere unikke navne - ville problemet ikke eksistere i nær samme omfang. /mvh </bole>
Hvis du lukker din egen side, når du har pop'et hans op og derefter klikke på flaget, kan du se, hvordan browseren leder efter en frame, der hedder 'main'. En sådan kan den ikke finde ('naboen' hedder jo netop 'Main' - med stort) og derfor pop'er den nye side op i et nyt vindue. Inden det sker, har browseren bladret vindues-hierakiet igennem og ledt efter 'main', men ikke fundet den. Havde du ikke lukket dit eget vindue, havde den snuppet din 'main' i stedet ;o) /mvh
Nejnej, Jakob ... det skal zq nok udligne sig i det lange løb. Den slags sker lidt frem og tilbage. *Skal* vi hænge os, kan vi jo ligeså godt bruge et ordentligt reb og ikke hænge os i bagateller ;o) /mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.