Avatar billede morpheus Nybegynder
28. marts 2000 - 21:03 Der er 13 kommentarer og
1 løsning

Umuligt at bryde frameset !

Hej !

Jeg har et frameset ! (WAUW !!!)

Når jeg giver mine kunder et link til en side, skal den kalde framesettet + den angivne side !

Eks.
Jeg giver min kunde følgende adresse:
http://www.mitdomain.dk/links.asp

Siden der åbnes hedder så:
http://www.mitdomain.dk/index.html/?links.asp

Kan man lave det og hvordan ?

<//morpheus\\>
Avatar billede olebole Juniormester
29. marts 2000 - 04:12 #1
<ole>
Det forstår jeg ikke. Hvad mener du med:
  http://www.mitdomain.dk/index.html/?links.asp
...???
</bole>
Avatar billede morpheus Nybegynder
29. marts 2000 - 08:04 #2
Min frameset fil hedder "index.html"

Den side jeg linker til hedder "links.asp"

http://www.mitdomain.dk/index.html/?links.asp
Er en URL jeg har set...men jeg kunne ikke rigtig finde ud af hvordan det blev brugt...

Jeg har set det på http://azero.dk

<//morpheus\\>
Avatar billede mjess Nybegynder
29. marts 2000 - 13:59 #3
Jeg har løst et lignende problem vha. javascript/cookies det kan være det kan hjælpe dig

Se http://www.eksperten.dk/spm.asp?id=11366

/mjess
Avatar billede morpheus Nybegynder
29. marts 2000 - 14:08 #4
Mjess>>>>>

Er det script ikke lidt langt ???

Prøv at se på http://azero.dk , det er lidt kortere !

Kan man ikke køre det i JS filer ???

Mvh.
<//morpheus\\>
Avatar billede morpheus Nybegynder
29. marts 2000 - 14:10 #5
<script language="Javascript"><!--
    if(top==self) {
        var parent = "/default.asp"
        var currURL = unescape(window.location.pathname);
        var newURL = parent + "?" + currURL;
        var appVer = navigator.appVersion;
        var NS = (navigator.appName == 'Netscape') && ((appVer.indexOf('3') != -1) || (appVer.indexOf('4') != -1));
        var MSIE = (appVer.indexOf('MSIE 4') != -1);
        if (NS || MSIE)
            location.replace(newURL);
        else
            location.href = newURL;
    }
//-->
</script>

Tror det er den her der laver det....

Hvis det er rigtigt så prøv lige at forklare hvad der sker !?

<//morpheus\\>
Avatar billede mjess Nybegynder
29. marts 2000 - 15:00 #6
Den er såmænd god nok (javascript)

Problemet med den løsning er at nogle webservere ikke kan fortolke "..blabla.html/?links.asp"

Det giver en fejl 404 - document not found

Du kan lave det på næsten samme måde:

<script language="Javascript"><!--
    if(top==self) {
        var parent = "/default.asp"  // <-- Dit frameset
        var currURL = unescape(window.location.pathname); // finder den oprindelige fil (links.asp)
        var newURL = parent + "?path=" + currURL; //  <-- tilføj "path="
        var appVer = navigator.appVersion;
        var NS = (navigator.appName == 'Netscape') && ((appVer.indexOf('3') != -1) || (appVer.indexOf('4') != -1));
        var MSIE = (appVer.indexOf('MSIE 4') != -1);
        if (NS || MSIE)
            location.replace(newURL);
        else
            location.href = newURL;
    }
//-->
</script>


I dit frameset (som så skal være en asp fil, kan du udtrække Request.QueryString("path") for at finde ud af hvilken fil, der skal loades i framen
Avatar billede morpheus Nybegynder
29. marts 2000 - 15:19 #7
altså....

den linje i framesetfilen hvor jeg finder de side der skal vises i main vil hedde:
<frameset blabla " & request.querystring("path") &">

???
Avatar billede mjess Nybegynder
31. marts 2000 - 09:59 #8
Næsten..


<frame blabla src="& request.querystring("path") & " blabla>

Du skal selvfølgelig undersøge, om der er noget i den querystring - hvis ikke skal du bare skrive den default side ind i stedet for:

<%
framesrc = request.querystring("path")
If framesrc = "" or isEmpty(framesrc) Then
  frametxt = "<frame blabla src="& "[den default fil i framen]" & " blabla>"
Else
  frametxt = "<frame blabla src="& request.querystring("path") & " blabla>
End If
Response.Write frametxt
%>
Avatar billede morpheus Nybegynder
31. marts 2000 - 10:44 #9
Den virker ikke helt !

URL'en ser nu således ud:
http://webserver/default.asp?path=/alfa/frames/test.html

default.asp
skulle være lokaliseret i folderen http://webserver/alfa, men "tror" den ligger i roden af mit web !

Filen test.html, ligger rigtigt nok i webserver/alfa/frames/test.html

Default.asp:
------------
<html>

<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>[d-net webdevelopment]</title>
</head>

<frameset rows="127,*" framespacing="0" border="0" frameborder="0">
  <frame name="banner" scrolling="no" noresize target="indhold" src="frames/top.htm">
  <frameset cols="132,*">
    <frame name="indhold" target="hovedramme" src="frames/menu.htm" scrolling="no">
<%
framesrc = request.querystring("path")
If framesrc = "" or isEmpty(framesrc) Then
  frametxt = "<frame name='hovedramme' src="& "frames/indhold.htm" & " blabla>"
Else
  frametxt = "<frame name='hovedramme' src="& request.querystring("path") & ">
End If
Response.Write frametxt
%>
   
   
   
   

  </frameset>
  <noframes>
  <body>

  <p>Denne Web-side bruger rammer, og din browser understøtter ikke rammer.</p>

  </body>
  </noframes>
</frameset>

</html>

Test.html
---------
<html>

<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Ny side 1</title>
</head>


<script language="Javascript"><!--
    if(top==self) {
        var parent = "/default.asp"  // <-- Dit frameset
        var currURL = unescape(window.location.pathname); // finder den oprindelige fil (links.asp)
        var newURL = parent + "?path=" + currURL; //  <-- tilføj "path="
        var appVer = navigator.appVersion;
        var NS = (navigator.appName == 'Netscape') && ((appVer.indexOf('3') != -1) || (appVer.indexOf('4') != -1));
        var MSIE = (appVer.indexOf('MSIE 4') != -1);
        if (NS || MSIE)
            location.replace(newURL);
        else
            location.href = newURL;
    }
//-->
</script>


<body>

<p>
Dette er en test</p>

</body>

</html>



Hvad har jeg gjort galt ?
Avatar billede morpheus Nybegynder
31. marts 2000 - 10:48 #10
Er det fordi default.asp, ikke "læser" hvor den selv er placeret, og går ud fra at den nok ligger i roden...?
Avatar billede mjess Nybegynder
31. marts 2000 - 10:55 #11
Prøv lige at kigge på sourcen fra dit frameset, så kan det være du kan finde fejlen - prøv evt. poste den her, så skal jeg se om jeg kan knække den

/mjess
Avatar billede morpheus Nybegynder
31. marts 2000 - 12:39 #12
Her er min framesource:


<html>

<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<title>[d-net webdevelopment]</title>
</head>

<frameset rows="127,*" framespacing="0" border="0" frameborder="0">
  <frame name="banner" scrolling="no" noresize target="indhold" src="frames/top.htm">
  <frameset cols="132,*">
    <frame name="indhold" target="hovedramme" src="frames/menu.htm" scrolling="no">
<%
framesrc = request.querystring("path")
If framesrc = "" or isEmpty(framesrc) Then
  frametxt = "<frame name='hovedramme' src='frames/indhold.htm'>"
Else
  frametxt = "<frame name='hovedramme' src="& request.querystring("path") & ">
End If
Response.Write frametxt
%>
   
   
   
   

  </frameset>
  <noframes>
  <body>

  <p>Denne Web-side bruger rammer, og din browser understøtter ikke rammer.</p>

  </body>
  </noframes>
</frameset>

</html>


<//morpheus\\>
Avatar billede mjess Nybegynder
31. marts 2000 - 12:48 #13
OK - jeg mente nu den source, du får når du åbner dit frameset i browseren via linket.

Det kan være du skal rette denne linje i JavaScriptet:

        var parent = "/default.asp"  // <-- Dit frameset hvis den er placeret i roden (/webserver/)

til:

        var parent = "/alfa/default.asp"  // <-- Dit frameset hvis den er placeret i webserver/alpha
       
eller

        var parent = "default.asp"  // <-- Dit frameset, hvis den ligger i samme bib. som links.asp

/mjess
Avatar billede morpheus Nybegynder
18. april 2000 - 12:50 #14
Det vil sige at jeg bare skal fjerne / i den 1. linje...????


<//morpheus\\>
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