Frames goed openen

Status
Niet open voor verdere reacties.

The Lion93

Gebruiker
Lid geworden
12 jul 2007
Berichten
189
Ik las in een online cursus HTML een stukje over frames:
De moeilijkheid met frames is dat zoekmachines niet goed raad weten met frames. Maar een simpele truc met javascript en het probleem is verholpen. Namelijk dat een zoekmachine elke pagina in een frame apart indexeert. Door een stuk javascript toe te voegen zorg je ervoor dat de pagina altijd geladen zal worden in het frame. Hier later meer over.
Maar vervolgens hebben ze het er niet meer over. Maar ik heb dat stuk javascript wel nodig omdat mijn eigen site ook met frames werkt. Weet iemand misschien het script waar ze het over hebben?
 
Tegesntrijdige informatie:

http://www.logivert.com/nl/producte...inkel-zoekmachine-en-google-optimalisatie.htm

Fabel 1: Mijn Webwinkel gebruikt frames en daarom kan het niet goed geïndexeerd worden

Sites gemaakt met Mijn Webwinkel gebruiken inderdaad frames. Dit is een technische noodzaak om het javascript voor de winkelwagen juist te laten functioneren.
Deze frames hebben echter geen negatief effect op de indexering. Dit om de volgende redenen:
Tijdens het indexeren door zoekmachines zijn de frames onzichtbaar. Deze frames worden namelijk met behulp van een javascript geladen. Zoekmachines voeren het stuk javascript niet uit en zien de site als een gewone niet “geframede” site.
Zelfs al zouden de zoekmachines de site wel als een “geframede” site zien, zou dit geen probleem zijn. De meeste zoekmachines hebben tegenwoordig namelijk geen moeite meer met frames.

En ik vond dit script voor je:

http://javascript.internet.com/navigation/load-two-frames.html
 
Nou of het een fabeltje is? Dit is wat google vindt van mijn site. En op die manier wordt de site dus niet goed weergegeven (behalve het 1ste zoek resultaat want dat is gewoon de index)!

Maar met die javascript wordt er dus een link geplaatst op de pagina's waar nadat er op wordt geklikt de andere frames verschijnen?
 
Is automatisch niet makkelijker? :)

Zoals:
je opent http://www.theyellowarmy.nl/verdedigers.html (maar niet in het frameset)
een script in die pagina vervangt de pagina door http://www.theyellowarmy.nl/?verdedigers.html
dat opent de index die vervolgens met een script de pagina achter het vraagteken in het 'Hoofdpagina' frame opent. :)


Maar het kan ook met een link, die alleen verschijnt als de pagina los wordt geopent.


Zeg maar welke je wilt dan maak ik het even voor je. :)


Vr.Gr. Egel.
 
Ik denk dat de eerste manier het gemakkelijkst is voor de bezoeker dus zou je die voor me kunnen maken? Heb je nog informatie nodig over mijn frameset?
 
De frameset heb ik al. :)

Dit is voor het bestand frame.js
PHP:
// Egel 080408 ;)

if (!parent.id) {
 var lh = document.location.href;
 var ix = lh.replace('www.theyellowarmy.nl/','www.theyellowarmy.nl/?');
 if (ix != lh) document.location.replace(ix);
 };
Dat zet je dan in de hoofdmap van je site, en daar link je naar in de pagina's die in het Hoofdframe horen te komen, met dit:
PHP:
<script src="frame.js"></script>
(Kan in de <head> of <body>.)

Als een pagina in een submap staat gebruik je
PHP:
<script src="../frame.js"></script>


In de index zet je dit:
PHP:
<HTML>
<HEAD>
<TITLE>The Yellow Army | Voor en Door NAC-Supporters</TITLE>
<meta name="verify-v1" content="fYVs72DL2uuIgFifscfL31CoiuLUcRhW+6TwH5bcwxo=" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<script type="text/javascript">
 // Egel 080408 ;)
 var id = 'theyellowarmy';
 var search = document.location.search.substring(1);
 function check() {
  if (/./.test(search)) Hoofdpagina.location.replace(search);
  };
</script>
</HEAD>

<FRAMESET ROWS="142,*, 52" onload="check()">
<FRAME SRC="header.html" NORESIZE MARGINHEIGHT="8" SCROLLING=NO>
<FRAMESET COLS="155,*">
<FRAME SRC="menu.html" NORESIZE MARGINWIDTH="0" MARGINHEIGHT="0" SCROLLING=NO>
<FRAME SRC="hoofdpagina.html" NORESIZE NAME="Hoofdpagina">
</FRAMESET>
<FRAME SRC="footer.html" NORESIZE MARGINHEIGHT="11" SCROLLING=NO>
</FRAMESET>
</HTML>
Een script in de <head> sectie en onload="check()" in de eerste frameset tag.


Net getest met Opera (daar kun je de broncode van een site mee 'bewerken') en het ging goed. :)



Vr.Gr. Egel.
 
Laatst bewerkt:
Graag gedaan! :)

Ik heb nog een extra scriptje voor het menu, de header en de footer:
Code:
<script type="text/javascript">
 // Egel 080409 ;)
 if (!parent.id) {
  if (/www\.theyellowarmy\.nl/.test(document.location.href)) document.location.replace('/');
  };
</script>
Dat opent dan gewoon de index als deze pagina's los geopent worden. :)


Vr.Gr. Egel.
 
Is dit script zo juist aangepast?

Hallo,

Ik loop tegen hetzelfde probleem aan als The Lion93. Egel had een mooi script voor hem gemaakt dat alle pagina's in een frame worden geladen.

Daarom heb ik het script van Egel aangepast alleen weet ik niet of ik het juist gedaan heb.
Zou iemand hiernaar willen kijken? Of kan ik dit ergens controleren of ik het juist heb gewijzigd?

Dit is de inhoud van het frame.js bestand.
// Egel 080408 ;)

if (!parent.id) {
var lh = document.location.href;
var ix = lh.replace('www.betaalwateroverzicht.nl/','www.betaalwateroverzicht.nl/?');
if (ix != lh) document.location.replace(ix);
};

Dit is de inhoud voor de Index pagina: (Ik heb alleen betaalwateroverzicht toegevoegd en het onload gedeelte)
<HTML>
<HEAD>
<TITLE>Betaalwateroverzicht.nl</TITLE>
<meta name="verify-v1" content="fYVs72DL2uuIgFifscfL31CoiuLUcRhW+6TwH5bcwxo=" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<script type="text/javascript">
// Egel 080408 ;)
var id = 'betaalwateroverzicht.nl';
var search = document.location.search.substring(1);
function check() {
if (/./.test(search)) Hoofdpagina.location.replace(search);
};
</script>
</HEAD>

<frameset cols="10%,*,165," onload="check()">
<frame noresize src="navigator.html" scrolling="no" frameborder=
"1" bordercolor="orange">
<frame noresize src="frame3.html" name="hoofdframe" scrolling=
"auto" frameborder="0">
<frame noresize src="banner.html" scrolling="no" frameborder="1"
bordercolor="orange">
<noframes>
<body>
Pas op: uw browser ondersteund geen frames
</body>
<body>

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

</html>

Daarnaast zal ik op elke pagina het volgende toevoegen.

<script src="frame.js"></script>

Alvast heel erg bedankt,

Jarno Veenstra
 
Als je deze zin:
PHP:
if (/./.test(search)) Hoofdpagina.location.replace(search);
vervangt door deze:
PHP:
if (/./.test(search)) hoofdframe.location.replace(search);
dan zou het moeten werken. :)

name="hoofdframe" is namelijk het frame dat je wilt vervangen.


Verder zou ik nu dit gebruiken:
PHP:
var ix = lh.replace('betaalwateroverzicht.nl/','betaalwateroverzicht.nl/?');
dus zonder de www.

Je site kan ook via http://betaalwateroverzicht.nl/ geopend worden, vandaar. :)


Vr.Gr. Egel.
 
Bedankt,

Hallo Egel,

Bedankt voor de super snelle reactie! :thumb:
Ik ga alles aanpassen. Werkt dit script ook
local (dus als het nog niet op de server staat?)

Ik zal laten weten als het gelukt is!!

Jarno
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan