Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

Eigen website

Anoniem
blackhawkdesign
7 antwoorden
  • Beste mensen,

    Wie weet een oplossing voor het volgende probleem:
    Ik heb een website met twee frames. Links wordt het menu ingeladen en blijft constant in beeld en rechts worden de pagina’s met inhoud getoond. Het probleem is wanneer een zoekmachine een item op een bepaalde bladzijde signaleert, alleen die bladzijde wordt ingeladen en wel over het volle scherm (dus zonder menu links). Nu heb ik dit opgelost met een programma in Java-script. Dit programma, geplaatst in het “head” gedeelte, controleert waar de aanvraag vandaan komt en als hij niet over de index.html is geweest, stuurt hij hem daar alsnog naar toe. Met als gevolg dat nu wel de beide frames worden ingeladen. Op zich dus opgelost; maar ik wil echter ook dat de aanvraag vanuit de zoekmachine doorgestuurd wordt naar de pagina waar de klant om vraagt. Dus de vraag vanuit de zoekmachine moet over de index.html gaan om beide frames in te laden en daarna naar de gevraagde pagina. Waarschijnlijk zal er dan nog een Java-script programma bij moeten. Mijn kennis hierover schiet tekort en ik heb hier ook niets over kunnen vinden.
    Wie weet hier een oplossing voor.
    Bijvoorbaat mijn hartelijke dank.

    Andrea
  • Mag ik suggereren om geen gebruik te maken van frames? Als je in plaats daarvan gebruik maakt van SSI i.c.m. CSS heb je toch een menu aan de linkerkant, maar dan zonder deze (en andere) problemen van frames.
    Zie ook Info voor aspirant 'Webdesigners' onder het kopje "Frames/iframes ".
  • Het kan wel, er is jaren geleden een uitgebreid artikel over verschenen, maar daar is nauwelijks door te komen:

    http://www.irt.org/articles/js126/index.htm

    Voorbeeld: http://www.irt.org/articles/js126/frameset.htm

    Makkelijker is, om te controleren of de pagina wel in een frameset is geladen, en dan een 'Home'-knop te tonen.

    Wat je beschrijft is een van de grootste nadelen van frames, en gebruikt nagenoeg niemand ze meer. Ik zou als ik jou was maar eens nadenken over een redesign, zonder frames.

    Zie ook Why are frames so evil?
  • Ja dat kan vrij eenvoudig. Je checkt nu of hij van index komt, je weet op dat moment ook voor welke pagina de bezoeker komt. Deze geef je mee in de url en vervolgens laat in je in de index pagina kijken of er een parameter is meegegeven en daarmee zet je gelijk de juiste pagina…
  • Naar aanleiding van je pb: Ik heb even een voorbeeldje gemaakt en ik kwam tot de conclusie: Het kan niet zo makkelijk op die manier…

    Je kan namelijk niet goed de echte url bepalen als je met frame werkt. Eigenlijk wat ze hierboven ook al zeiden.

    Je kan in zon geval misschien het beter op de server zelf laten afhandelen. Hoe je dat precies doet weet ik niet, maar ik weet wel dat je het daarmee kan doen.
  • Tuurlijk kan dat wel:

    Je hebt een aantal dingen nodig. Als eerste moet de child pagina weten of het een orphan is, dus dit moet in elke pagina die los gevonden kan worden:

    [code:1:89852e7473]<script language="javascript" type="text/javascript">
    <!–
    if (top.location == self.location) { //niet in frame
    top.location.href = "http://www.jouw_site.nl/jouw_frameset.htm" + "?" + window.location.href;
    }
    //–>
    </script[/code:1:89852e7473]

    Dan heb je in je je frameset pagina nog een stukje nodig om de code die de los gevonden child pagina meestuurt te verwerken:

    [code:1:89852e7473]<script language="javascript" type="text/javascript">
    <!–
    pageURL = "een_standaard_pagina.htm";
    if (parent.document.URL) {
    parentURL = parent.document.URL;
    if (parentURL.indexOf('?') != -1) {
    pageURL = parentURL.substring(parentURL.indexOf('?')+1,parentURL.length);
    }
    }
    function opbouwen() {
    parent.main.location.href = pageURL;
    }
    //–>
    </SCRIPT>[/code:1:89852e7473]

    Deze code stuur door naar een standaardpagina als de orphan niet herkend wordt. Zodra die wel herkend wordt bouwt ie je frameset opnieuw op.

    Die functie zal je dus nog moeten aanroepen in je frameset zelf:
    [code:1:89852e7473]<frameset cols="30%,*" onLoad="opbouwen();">
    <frame name="navigatie" src="navigatie.htm">
    <frame name="main" src="javascript:parent.blank">
    </frameset>[/code:1:89852e7473]

    Niet getest, en het is een hele tijd geleden voor deze oude html-ert, maar ik denk dat dit doet wat jij wil met een beetje tweaken.. :)
  • ja, graag gedaan hoor… :?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.