Avatar billede fastwrite Nybegynder
02. august 2003 - 10:59 Der er 21 kommentarer og
1 løsning

to frames - skal altid vises. (redirect)

Hej med jer. Nu har jeg i to dage forsøgt at få det her til at virke, uden held.

Jeg bruger normalt ikke frames, men lige til dette formål, er den ok - indtil videre. Jeg har dog det problem at hvis jeg går direkte ind på en underside (mainframe), så bliver min menu (topframe) ikke vist.

Jeg har prøvet med javascript, at hvis jeg gør følgende:

www.domæne.dk/html/a.asp

så skal den først starte

www.domæne.dk/index.asp

og herefter skal den så vise a.asp filen i mainframen bagefter, så den nu viser både topframe og mainframe.

topframe filen hedder topframe.asp og mainframe filen hedder mainframe.asp
Avatar billede whatever Nybegynder
02. august 2003 - 11:10 #1
Prøv noget lignende:

<%
    File = Request.ServerVariables("PATH_INFO")
    QueryString = Request.ServerVariables("QUERY_STRING")
    If QueryString <> "" Then
        Url = File & "?" & QueryString
    Else
        Url = File
    End If

%>

<script type="text/javascript">
<!--
    if (top == self){
        var url = "<%=Server.URLEncode(Url)%>";
        parent.location.href='../index.asp?loadpage=' + url;
    }
//-->
</script>

Javascripten skal stå mellem head-tagene på din side.

I index.asp som er framesystemet skal du hente variablen loadpage ned fra queystringen, og loade den ind i mainframe.
Avatar billede whatever Nybegynder
02. august 2003 - 11:11 #2
Det er ikke testet. Og jeg har ikke lavet ASP i et år, så der kan måske godt være et par fejl :-)
Avatar billede fastwrite Nybegynder
02. august 2003 - 11:16 #3
tak for det. Jeg vil prøve det om lidt, men i index.asp filen, hvad skal jeg mere præcist skrive dér? Forstår ikke helt "hente variablen loadpage ned fra querystringen"... kan du skære det lidt mere ud i pap? på forhånd tak!
Avatar billede whatever Nybegynder
02. august 2003 - 11:29 #4
<%
  If Request.QueryString("loadpage") <> "" Then
    Url = Request.QueryString("loadpage")
  Else
    Url = "default_mainside.asp"
%>


<frame...... src="<%=Url%>"......>
Avatar billede whatever Nybegynder
02. august 2003 - 11:30 #5
<%=Url%> skal sættes ind i src atributten i den frame-tag, der benyttes til mainframe.
Avatar billede roenving Novice
02. august 2003 - 12:51 #6
I javascript har jeg lavet det sådan:

http://roenving.users.whitehat.dk/WD3Input.html

Kig lige i adresse-linjen når du kommer ind, for ovenstående linker til en underside, med hovesiden inkluderes ...

-- og du kan se kode/forklaring til venstre !-)
Avatar billede fastwrite Nybegynder
04. august 2003 - 00:08 #7
whatever - tak for eksemplet - men jeg prøver lige først roevnvings forslag.

roenving - jeg har prøvet dit script. Jeg har indsat koden som du beskriver, men når jeg skriver følgende i browseren:

www.(mit domæne).dk/html/test.asp og trykker enter - bliver det erstattet med
www.(mit domæne).dk/index.asp/html/test.asp

der kommer altså et index.asp ind (hvor koden til frames'ene bliver startet), og dernæst viser den blank side (altså - at siden ikke eksisterer)

Hvad gør jeg forkert?

Koden jeg har brugt i min index.asp:

<HTML>
<HEAD> <TITLE>TESTER</title>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<script language="javascript" type="text/javascript">
  function loadSource(){
  if (location.search!=""){
    src=unescape(location.search.substring(1));
    top.frames['mainframe'].location.href=src;
  }}
</script>

</head>

<frameset rows="174,*" cols="*" framespacing="0" frameborder="NO" border="0">
  <frame src="topframe.asp" name="topFrame" scrolling="NO" noresize >
  <frame src="mainframe.asp" name="mainframe">
</frameset>
<noframes>

og koden i mine underfiler :

<body onload="loadSource()" bgcolor="#000000" background="billeder/baggrund-blue.jpg">

<script language="javascript" type="text/javascript">
  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("www.mitdomæne.dk/")+17)+"index.asp"+escape(location.pathname))}
</script>

Hvad gør jeg forkert?

Javascriptet skal se at topframen mangler - indsætte den, og dernæst indsætte den underfil man i starten gik direkte ind på.

(PS - det er ikke fordi det er nogen hemmelig side, vil bare vente med at offentliggøre den til jeg har fået styr på det med mine frames, da jeg er lidt på usikker grund når det drejer sig om javascript.. man er jo ikke god til det hele :o)
Avatar billede roenving Novice
04. august 2003 - 00:25 #8
location.search er det som står bagefter sidens adresse (incluse et spørgsmålstegn, som du selv skal sørge for står der, altså (tror jeg !-)

  if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf("www.mitdomæne.dk/")+17)+"index.asp?"+escape(location.pathname))}
Avatar billede fastwrite Nybegynder
04. august 2003 - 00:31 #9
roenving - jeg er kommet lidt længere.

Jeg nærlæste din kode, og så at der stod MAINFRAME - det er den jeg kalder TOPFRAME (altså en menu jeg har på min øverste frame). Den kode har jeg sat ind dér. Og så har jeg skrevet ".dk")+3 i stedet for +17 - da jeg læste at det kun var hvis ens domæne ikke sluttede på et .dk (mand, hvor må jeg være træt at jeg ikke havde set det).

MEN - når jeg nu laver det samme direkte link til en underside, sker der nu blot det at den henter startsiden ind (starter min index.asp fil), UDEN at den også henter det direte link og propper den ned i mainframen.
Avatar billede fastwrite Nybegynder
04. august 2003 - 00:38 #10
det ser ud til at jeg ikke skal bruge det ? nogen steder.. men når jeg fjerner det, får jeg følgende linje: http://www.[mitdomæne].dk/index.asp/html/test.asp

og efterfølgende en "siden kan ikke vises"
Avatar billede roenving Novice
04. august 2003 - 00:43 #11
Du _skal_ have et ? med, for ellers kan javascript-fortolkeren ikke finde noget som hedder location.search() !-)
Avatar billede roenving Novice
04. august 2003 - 00:44 #12
Prøv at nærlæse adresselinjen, efter at du har trykket på mit ovenstående link !o]
Avatar billede fastwrite Nybegynder
04. august 2003 - 00:59 #13
Det har jeg gjort nu, men fatter keine.. når jeg skriver www.mitdomæne.dk/html/test.asp - trykker jeg enter, og så skriver den følgende:

http://www.mitdomæne.dk/index.asp?/html/test.asp

og så viser den kun forsiden, med den mainframe eller underfil der bliver kaldet fra min index.asp - min test.asp kommer ikke frem :o/

Er det mig der er ved at blive skør?!
Avatar billede roenving Novice
04. august 2003 - 01:09 #14
og den ligger i html-biblioteket ?-)
Avatar billede fastwrite Nybegynder
04. august 2003 - 01:13 #15
min test.asp fil ligger i /html/ ja.

min topframe.asp og min mainframe.asp ligger i roden.
Avatar billede roenving Novice
04. august 2003 - 01:32 #16
For lige at teste, så læg en alert-linje ind, og fortæl hvad den laver ...

<script language="javascript" type="text/javascript">
  function loadSource(){
  if (location.search!=""){
    src=unescape(location.search.substring(1));
alert(src);
    top.frames['topFrame'].location.href=src;
  }}
</script>
Avatar billede roenving Novice
04. august 2003 - 01:33 #17
-- og du har selvfølgelig husket topFrame <-- det store F
Avatar billede fastwrite Nybegynder
06. august 2003 - 10:30 #18
Jeg synes snart jeg har prøvet det hele. Det mest succesfulde er at den bare går til hovedsiden med alle frames'ene (topframe og mainframe). Jeg har med vilje skrevet dem med små bogstaver. Den går desværre ikke til den side jeg linker direkte til.

Hvis du giver mig et konkret eksempel på koden, og fortæller hvor koden skal sættes ind henne, så vil jeg blive MEGET glad.

De frames jeg har lavet ser sådan ud:

_________
|_______| <-- topframe
|      |
|      | <-- mainframe
|_______|

Det er vist ikke ascii grafik min fremtid ligger i - men jeg håber du forstår meningen. i min topframe er min menu - og i min mainframe er indholdet.
Avatar billede roenving Novice
06. august 2003 - 11:44 #19
Sætter du redirect-koden ind i index.asp ?-)

-- jeg blev igår opmærksom på, at den tekst jeg havde sat som forklaring til redirect-koden kunne misforstås, hvis man arbejder med frameset-dokumenter, så forklaringen er blevet opdateret på min hjemmeside.

I frameset-dokumentet er det at koden med loadSource() skal indsættes og onload skal ind i det _første_ frameset-tag:

<frameset ... onload="loadSource()">

hth
jes
Avatar billede fastwrite Nybegynder
06. august 2003 - 12:55 #20
jeg har ikke noget redirect kode i min index.asp - men det kan jeg jo lige prøve.

koden loadsource() skal altså sættes ind i index.asp under den første frameset?
Avatar billede fastwrite Nybegynder
19. august 2003 - 23:31 #21
nå, jeg har fundet en nogenlunde løsning - og vil gerne takke for jeres hjælp - hvis I vil droppe et svar...
Avatar billede fastwrite Nybegynder
12. september 2003 - 13:26 #22
hmm.. ok - så tager jeg dem bare selv.
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