Externe links naar pagina uit frameset-->laden in frameset

Pagina: 1
Acties:

  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
Ik heb een vrij common probleem: ik heb een pagina die bestaat uit een frameset ( http://www.mijnogen.net/index2.html ). Nu wil ik, dat als je naar een pagina uit die frameset gaat (bijvoorbeeld via een link)(zeg "inhoud.html"), dat ie dan niet die pagina laad maar die pagina in de frameset. Hiervoor zijn duizenden script, echter, mijn vraag wordt ingewikkelder. Het laden van alleen de frameset is onvoldoende, ik wil dat er dan in het inhoud-frame ook de pagina van die link wordt geladen en dus niet automatisch de "src" van dat frame. Ondertussen was ik op dit topic gekomen. Ik quote wicher:
wicher schreef op maandag 07 oktober 2002 @ 20:48:
[...]
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).

[...]
In mijn inhoud-frame staat een weblog. De weblog tool die ik gebruik (Pivot), genereert voor elke post een php pagina en de links naar losse posts gaan zo: http://www.mijnogen.net/pivot/entry.php?id=7. Guess what...dan werkt bovenstaand script dus niet. Nu is dus mijn vraag: is er een oplossing voor dit probleem? Bijvoorbeeld door een kleine aanpassing in het script van Wicher? Of kan ik dit wel vergeten?

leoaq.fm // Jeune Loop


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Dit kan idd door een kleine aanpassing in het script van Wicher :)

Wat heb je al geprobeerd? Wat lukte er niet? Als je de url van dat pivot ding escaped werkt het script waarschijnlijk al.

  • simon
  • Registratie: Maart 2002
  • Laatst online: 06-05 09:17
Hier hoef je toch geen frames voor te gebruiken? Het template wijzigen en een div met een overflow: auto toevoegen zou 't ook kunnen doen... imho :)

|>


  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
André schreef op donderdag 19 mei 2005 @ 14:35:
Dit kan idd door een kleine aanpassing in het script van Wicher :)

Wat heb je al geprobeerd? Wat lukte er niet? Als je de url van dat pivot ding escaped werkt het script waarschijnlijk al.
Ik heb geprobeerd om Pivot i.p.v. zo'n entry.php?id=7 een mooie URL te laten maken met apache mod rewrite oid, maar dat werkt niet omdat mijn host IIS draait :) De JS aanpassen heb ik niet geprobeerd omdat ik met mijn beperkte JS kennis meer kans heb het te slopen dan iets toe te voegen... Wat bedoel je btw precies met "de url van dat pivot ding escaped"? Dat het script eerst alles na " http://www.mijnogen.net/pivot/" weghaalt en dan pas het script uitvoert?

Ik begrijp dat je me nog even wilt laten spartelen maar een oplossing van jouw kant lijkt me op het moment waarschijnlijker dan een van mijn kant :)
Simon schreef op donderdag 19 mei 2005 @ 14:37:
Hier hoef je toch geen frames voor te gebruiken? Het template wijzigen en een div met een overflow: auto toevoegen zou 't ook kunnen doen... imho :)
Jep :) Het is ook meer als tijdelijke oplossing; ik wil eerst alles omtrent het weblog op orde hebben en dan ga ik wel klussen met DIV's enzo ;) Op het moment ben ik nog wat sneller met framesets dan met DIV's :D

leoaq.fm // Jeune Loop


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Ik heb net even gekeken maar volgens mij doet het script het prima met urls waarin ? en & voorkomen. Als je pagina zonder frameset geopend wordt opent hij de frameset op deze manier: frameset.html?inframe=http://www.mijnogen.net/pivot/entry.php?id=7. En als ik dat dat in de frameset weer uitlees met het script krijg ik keurig: http://www.mijnogen.net/pivot/entry.php?id=7. Dus waarschijnlijk gaat er iets anders fout.

  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
Het enige wat ik kan bedenken dat fout gaat is dit:

Elke entry krijgt een eigen PHP pagina die is gebaseerd op een template paina; "entrypage_template.html":
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" [[lang:html]]>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=[[charset]]" />
    <link rel="stylesheet" type="text/css" href="[[template_dir]]pivot_template.css" />
<script>

if (top == self) {
location = 'http://www.mijnogen.net/index2.html'?inframe='+self.location.href';

</script>
</head>
<body>
    <div id="header" style="width:500px;">
                <div class="prevnext_links">[[previousentry]][[nextentry]]</div>
    </div><!-- end of 'header' -->
    <div class="entrycontent">
        <h2>[[title]]</h2>
                                <span class="date">[[user]] op [[diffdate]]  [[date]]</span><br />
        [[introduction]]
        [[body]]
        [[message]]
        [[comments]]
        [[commentform]]
    </div><!-- end of 'entrycontent' -->
</body>
</html>

Hierin "include" pivot dus de tekst van de post en de comments enzo en daarvan maakt ie dan een aparte PHP pagina. Wat ik denk is dat ie dan het script op de een of andere manier niet meeneemt zodat de uiteindelijke PHP pagina van een post deze code niet bevat...ik zal t eens proberen met een statische pagina met deze code.

EDIT: Ik heb nu een bestandje geüpload:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
<html>
<head>
<script>

if (top == self) {
location = 'http://www.mijnogen.net/index2.html'?inframe='+self.location.href';

</script>
</head>
<body>
Test
</body>
</html>

Nu de links:
http://www.mijnogen.net/pivot/templates/test.html --> werkt niet
http://www.mijnogen.net/i...pivot/templates/test.html --> werktook niet :?

Nu snap ik er echt niks meer van... ;(

[ Voor 92% gewijzigd door sjaakaq op 19-05-2005 16:03 ]

leoaq.fm // Jeune Loop


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

De 2de link werkt bij mij, en het script in de 1e pagina zou zo moeten:

code:
1
2
3
4
5
6
<script type="text/javascript">

if (top == self) {
  location.href = 'http://www.mijnogen.net/index2.html'?inframe=' + location.href;
}
</script>

Je hebt een ' teveel en een } te weinig.

  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
Hmm...als ik op die 2e link klik krijg ik, ook na de aanpassing, wel de frameset maar daarin wordt NIET test.html geladen maar gewoon de standaard pagina... Ik wordt dus wel naar de frameset verwezen (eerste stuk code in test.html werkt dus), maar in die frameset wordt vervolgens niet text.html geladen dus de code in de frameset werkt (bij mij iig) niet. Mijn frameset (misschien dat daar dan ook } en ' foutjes in zitten :X ):
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<html>
    
    <head>
        <title>Mijnogen » Bring back the eightees</title>
              <script>
wls = window.location.search;
if (wls.length > 0) {
main.location.href = wls.substring(9,wls.length);
}
              </script>
    </head>
    
    <frameset rows="122,*,64" border=0 bordercolor="#fff">
        <frameset cols="*,644,*" border=0 bordercolor="#fff">
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="titel.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
        </frameset>
        <frameset cols="*,22,600,22,*" border=0 bordercolor"#fff">
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="schaduwlinks.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="index2.php" scrolling=auto marginwidth=0 marginheight=0 noresize name="main">
            <frame src="schaduwrechts.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
        </frameset>
        <frameset cols="*,644,*" border=0 bordercolor="#fff">
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="footer.html" scrolling=no marginwidth=0 marginheight=0 noresize>
            <frame src="bg.html" scrolling=no marginwidth=0 marginheight=0 noresize>
        </frameset>
    </frameset>

</html>

In ieder geval bedankt voor de hulp tot nu toe!

leoaq.fm // Jeune Loop


  • André
  • Registratie: Maart 2002
  • Laatst online: 06-05 11:13

André

Analytics dude

Verander dit:
code:
1
<frame src="index2.php" scrolling=auto marginwidth=0 marginheight=0 noresize name="main">

in:
code:
1
2
3
4
5
6
7
8
9
<script type="text/javascript">
  wls = window.location.search;
  url = "index2.php";  
  if (wls.length > 0)
  {
    url = wls.substring(9,wls.length);
  }
  document.write("<frame src='" + url + "' scrolling='auto' marginwidth='0' marginheight='0' noresize name='main'>")
</script>

Dan schrijft ie het frame al direct met de juiste pagina er in

[ Voor 7% gewijzigd door André op 19-05-2005 16:26 ]


  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
André schreef op donderdag 19 mei 2005 @ 16:25:
Verander dit:
code:
1
<frame src="index2.php" scrolling=auto marginwidth=0 marginheight=0 noresize name="main">

in:
code:
1
2
3
4
5
6
7
8
9
<script type="text/javascript">
  wls = window.location.search;
  url = "index2.php";  
  if (wls.length > 0)
  {
    url = wls.substring(9,wls.length);
  }
  document.write("<frame src='" + url + "' scrolling='auto' marginwidth='0' marginheight='0' noresize name='main'>")
</script>

Dan schrijft ie het frame al direct met de juiste pagina er in
Werkt niet...hij negeert de hele code gok ik, want hij laadt namelijk wel het volgende frame in het hoofdframe:
Afbeeldingslocatie: http://img287.echo.cx/img287/2402/werktniet8kz.th.png

leoaq.fm // Jeune Loop


  • sjaakaq
  • Registratie: September 2003
  • Laatst online: 17-04 10:24

sjaakaq

It might get loud

Topicstarter
Weet iemand waarom dit niet werkt?

leoaq.fm // Jeune Loop

Pagina: 1