22. februar 2004 - 11:38Der er
15 kommentarer og 3 løsninger
Tving en side til at åbne i frames - skal fungere med søgemaskine
Kan nogen hjælpe mig med at få dette script til at fungere? Det skal fungere sammen med søgemaskiner.
Denne kode sættes på alle indholdssiderne <script language="javascript" type="text/javascript"> if(top.location==window.location){top.location.replace(top.location.href.substring(0,top.location.href.indexOf(".dk/")+3)+"/index.htm?"+escape(location.pathname))} </script>
Denne kode på framset siden <script language="javascript" type="text/javascript"> function loadSource(){ if (location.search!=""){ src=unescape(location.search.substring(1)); top.frames['mainFrame'].location.href=src; }} </script>
her er til indholdssiderne: ---8<---------- <script language="javascript" type="text/javascript"> if(top.location==window.location){ top.location.replace(top.location.href.substring(0,top.location.href.lastIndexOf("/"))+"/index.htm?"+location.href.substr(location.href.lastIndexOf("/")+1))} </script> ---8<----------
og her til frameset siden: ---8<---------- <script language="javascript" type="text/javascript"> function loadSource(){ if (location.search!=""){ src=unescape(location.search.substring(1)); top.frames['mainFrame'].location.href=src; } } </script> ---8<---------- + at frameset siden skal have: <frameset cols/rows="yadayada" onload="loadSource(); return true;">
scriptet kræver at frameset siden og indholdssiderne ligger i samme bibliotek. Vil du gøre det mere generelt, skal du bruge location.pathname i indholdssiderne også. (spørg evt. hvis det er nødvendigt)
yeps, yeps og yeps :) 1) Sådan som jeg har bygget det op, skal frameset og indholdssider ligge i samme bibliotek. 2) Du skal have 'onload="loadSource(); return true;"' (uden "'"'er) med indenfor din frameset tag 3) duer med søgemaskiner... hmmm... jeg er ikke sikker på hvad du mener med det. Men scriptet er lavet sådan at du ikke kan se en indholdsside uden at den er i et frameset. (dvs. det første indholdssiderne gør er at checke om de fylder hele siden, og hvis de gør det, så loader de dit frameset med sig selv i mainFrame
Prøv at gemme de her 2 filer i samme bibliotek: ---8<-----[index.htm]----- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> <html> <head> <title>frameset</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 cols="200,*" onload="loadSource(); return true;"> <frame name="naviFrame" src="navi.htm"> <frame name="mainFrame" src="main.htm"> </frameset> </html> ---8<---------- ---8<-----[main.htm]----- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>main</title> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1"> </head> <body bgcolor="0000ff"> <script language="javascript" type="text/javascript"> if(top.location==window.location){ top.location.replace(top.location.href.substring(0,top.location.href.lastIndexOf("/"))+"/index.htm?"+location.href.substr(location.href.lastIndexOf("/")+1))} </script> <h1>CenterFrame1</h1> </body> </html> ---8<---------- (og lav evt. nogle forskellige kopier af main.htm (med samme javascript i). Herefter kan du prøve at loade index.htm ind i browseren, eller main.htm. Begge ting vil resultere i at dit frameset bliver loadet. Og hvis du laver kopier af main (eller andre sider med samme javascript i), vil de blive loadet som mainFrame indholdet i dit frameset, hvis du prøver at loade dem alene. Hmmm... jeg ved ikke om det gjorde det mere klart? (-:H@zze
Jeg ved ski ikke rigtig hvad jeg gør ved det her. Jeg skrev jo, at det sku' fungere med søgemaskiner. Og at alle siderne skal ligge i samme mappe - det blir jo et rod, når der er mange. Jeg troede, der var nogen, der vidste hvad der virkede.
Hvad er forskellen så på at bruge iframe og frames? Så vidt jeg ved er der mange der bruger iframe.
Frames kræver et frameset til at regulere forekomsten, hvor iframes (inline frames) kan placeres i et almindeligt dokument ...
-- og det betyder i princippet intet om du placerer i een mappe eller flere, det kan du gøre som du vil, men visse konsekvens-rettelser vil være nødvendige i forhold til den angivne kode !-)
Hvad er det præcist du mener, når du sriver at "det skal virke med søgemaskiner"? ...og hvorfor begynder du at snakke om frameset vs. iframes? Jeg er ikke længere så sikker på at jeg har forstået hvad det er du vil? :(
-- og iøvrigt har google ingen problemer med at linke til den ovenfor angivne side, som selvfølgelig loades, som den skal, inde i min hovedside med navigering osv...
-- men derfor skal de andre bidragydere vel også krediteres for deres indsats !-)
roenving - når jeg skriver, at det skal virke med søgemaskiner, mener jeg, at de skal kunne finde mine undersider og loade dem i den rigtige ramme. Med iframes tænkte jeg blot på om det er mindre problematisk end frames.
Søgemaskiner kan sagtens indexsere dine sider selvom de tvinger sig selv ind i et frameset! og jeg tror ikke at du vinder noget ved at bruge iframes istedet.
Hvis det er et problem for dig at det hele skal ligge i et bibliotek, kan koden godt ændres til at arbejde med underbiblioteker - jeg troede bare ikke at det var et omfattende system du arbejdede på, og så var det nemmere for mig at lave det lille shortcut (da det gør test på min lokale maskines nemmere).
<META NAME="Robots" CONTENT="ALL"> eller <meta name="robots" content="index,follow">
-- den sidste nok som modsætning til hhv. noindex og nofollow ...
-- og tak for points ;~}
Synes godt om
Ny brugerNybegynder
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.