Avatar billede klausjensen Nybegynder
25. januar 2000 - 19:53 Der er 10 kommentarer og
2 løsninger

Checke for frames

Hej!

Hvis man har et site i frames, og en søgemaskine indekserer en underide, eller der bliver lavet en link til en underside, så kommer folk ind på undersiden uden de vitale frames udenom.

Jeg har set det kan lade sig gøre i javascript at checke om en side er framet eller ej, men mit spørgsmål går på, hvordan laver man det bedst muligt, så det virker for alle (i alt fald alle med Javascript). Hvor mange virker det for, og hvordan skal koden se ud.

Avatar billede jumper Nybegynder
25. januar 2000 - 21:57 #1
if (top.location!=location){
    top.location = 'skod.html'
}

Hvis din side f.eks. hedder "skod.html"...

Grunden til at jeg ikke tjekker på document.location.href er så det også virker i Netscape 2 og Internet Explorer 3.

/Thor
Avatar billede olebole Juniormester
26. januar 2000 - 01:45 #2
>> jumper
Den funker ikke. Det gør denne derimod:

if (self.location == top.location) {
    top.location = "frames.html";
}

Den skrives i toppen på alle html'er - undtaget selvfølgelig framesettet - som hedder 'frames.html'.

/VH
Ole Clausen
Avatar billede jumper Nybegynder
26. januar 2000 - 01:49 #3
olebole, jeg havde lige gjrot det omvendt *GG*

Så det skulle rettes til

if (top.location==location){
    top.location = 'skod.html'
}

/Thor
Avatar billede olebole Juniormester
26. januar 2000 - 02:07 #4
Ja, i et frameset ville din første løsning have udløst 'det udvidede nord franske reload helvede' ;-)

Jeg tror nu - uden at være stone sure - det er mere sikkert at spørge om 'self.location'(?)
/VH
Ole
Avatar billede jumper Nybegynder
26. januar 2000 - 02:10 #5
Nope, ikke hvis det skal virke i selv gamle browsere, her tænker jeg især på Internet Explorer 3, der kan kløjes over alt *G*

At spørge efter location objektet direkte vil gøre så det også virker i IE 3 og Netscape 2.

/Thor
Avatar billede olebole Juniormester
26. januar 2000 - 02:30 #6
OK, hvis du lover aldrig mere at nævne IE3, bøjer jeg mig…jeg får bylder i pupillerne - bare af at se navnet…Hehe
/Ole
Avatar billede klausjensen Nybegynder
26. januar 2000 - 09:10 #7
Takker!

Hvis nu jeg vil hive url'en fra min side med over som et arfument til frames.html?

frames.asp?main=skoddert.htm

...Hvordan er det lige man trækker dokumentet med ud af javascript?
Avatar billede olebole Juniormester
26. januar 2000 - 19:02 #8
Nåhhh…man er nok snedig, hva'…? ;-)

Lad os sige, at den side brugeren har loaded alene (og som skal tilbage på plads i sit frameset) hedder 'skod.html' og det frameset, du gerne vil have den vist i hedder 'frames.html' - så skriver du i head'en på 'skod.html':

if(top.location==location){
  top.location = 'frames.html?main=skod.html'
}

Så vil du i 'frames.html' kunne ekstrahere 'skod.html' dokumentets ønskede plads i frameset'et (framen 'main'). Jeg går ud fra, det er det, du ønsker ;-)
I frameset'ets head skriver du dette script:

function nyLoc() {
    with (location.search) {
        if (indexOf('main') != -1) {
            top.main.location = substring(indexOf('=')+1,length);
        }
    }
}

I frameset-tag'en laver du en 'onload=nyLoc();' - og Vupti…der bliver stillet om til 'Box 2'.

Dette er med JavaScript. Jeg ved ikke, om der er en smartere måde i ASP - det er der i PHP. Der er en variabel, der ankommer med search-strengen automatisk deklareret - og kan tilgås direkte.

Håber det hjælper lidt
/Ole
Avatar billede klausjensen Nybegynder
27. januar 2000 - 09:43 #9
Mange tak! Det var lige nøjagtigt det, jeg var på jagt efter. :)

I ASP er der også en mulighed for at hente elementer af Querystring'en direkte ud.

Tak for det! Du skulle have nogle flere point... Jeg opretter en ny tråd i Javascript, hvor titlen er "Checke frames - og stille videre..." Paste dit svar ind, så får du lige 100 ekstra. :)
Avatar billede olebole Juniormester
27. januar 2000 - 10:10 #10
Takker, ærbødigst :-))
Avatar billede freestyleren Nybegynder
27. april 2000 - 15:49 #11
<frameset border=0
    frameborder=0>
    <frameset rows="125,*,95">
    <frameset cols="20%,52%,28%">
    <frame name="status" src="status.htm">
    <frame name="logo" src="logo.htm">
    <frame name="rek" src="reklame.htm">
</frameset>
<frameset border=0 name="fr1">
    <frameset cols="20%,*">
    <frame name="bar" src="venstre.htm">
    <frame name="main" src="nyhed.php3">
</frameset>
<frameset border=0>
    <frameset cols="20%,*">
    <frame name="bot1" src="bot1.htm">
    <frame name="bot2" src="bot2.htm">
   
</frameset>
Avatar billede olebole Juniormester
27. april 2000 - 15:53 #12
Mmmmm...det er FLOT, men hvad er det til...???
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester