webForumDet fria alternativet

Omdirigering undersida till index.html

HTML & CSS

3 svar · 918 visningar · startad av Alfos

Medlem sedan mars 200911 inlägg
Frågan#1

Hej
Jag har en hemsida gjord med iframes och när en sökmotor hittar en undersida och man klickar på den så öppnas endast undersidan. Hur gör jag för att man vid "klick på undersida" omdirigeras till index.html i roten på servern. Servern kör apache.

tacksam för svar

Medlem sedan okt. 2007446 inlägg
#2

med javascript på alla sidor som ligger i en iframe
lägg detta i head bara....
<script language="javascript">
if (window == top) top.location.href = "http://din_domän.xxx/";
</script>

alternativet är ju att skippa frames så slipper man sån där huvudvärk
samt att en besökare kanske var intresserad av det som stod på sidan h*n hittade via google, om de då blir kastade till index och sen måste leta upp just den sidan igen så finns det risk för att den besökaren inte kommer tillbaka

Medlem sedan juli 20013 378 inlägg
#3

Hmm...

Välkommen till wF Alfos!

Om man nu ändå scriptar och har sig, kan man iofs ganska enkelt se till att man bibehåller sidan man "skriptade sig ifrån" genom att utöka även "startsidan" lite ;) ...

Testa http://member.webforum.nu/2241/krama_mig_med_ramar.html

Visserligen är index-sidan ett "rent" frameset i just det gamla exemplet, men principen är densamma...
Lägg scriptet från "sidan som inte vill vara ensam"

<body onload = "if (top.location.href == location.href) {top.location.href='inramare.html?inramad=' + location.href;}" >

i alla dina "iframade" sidor, och lägg sedan ett script som skapar iframe-elementet dynamiskt på index-sidan.

Du bör ganska enkelt kunna se hur du moddar scriptet på index-sidan ("inramare.html") till att skriva ut en iframe med src via document.write pss som sidan i exemplet skriver ut en <frame> dvs genom att meka lite med document.write-satserna så att det som blir kvar i "elementväg" blir

<script type="text/javascript">
function getVar(varname) {
[... se källkoden för sidan ...]
}

  if (getVar('inramad') != "") {
  document.write("<iframe name='main' src='");
  document.write(getVar('inramad'));
  document.write("'>");
}
else {
  document.write("<iframe name='main' src='inramare_start.html'>");
}
  document.write("</iframe>");
</script>

plus kanske en <noscript> med den iframe du vill ha där om besökaren inte har Javascript påslaget ;)

Att jag använder body onload istället för att köra "direkt" inifrån en <script> har förresten historiska skäl om inte annat - en gång för inte så länge sedan kunde man nämligen utlösa cache-problem genom att avbryta en sidladdning mha script-redirects innan sidan var färdigladdad - men det är en annan historia och förmodligen mest en smaksak numera iom att NN4 numera väl får anses vara totalt död ;)

Medlem sedan mars 200911 inlägg
#4

Hej och tack för hjälpen

Så här blev det

<script language="JavaScript" type="text/javascript">
if (top == self) { var url = 'index.html?url=' + escape(location.pathname + location.search + location.hash ); if (document.images) location.replace(url); else location.href = url; }
</script>

Tack för hjälpen igen

252 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)