webForumDet fria alternativet

Omdirigering undersida till index.html

3 svar · 918 visningar · startad av Alfos

AlfosMedlem sedan mars 200911 inlägg
#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

rhdfMedlem sedan okt. 2007447 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

jarvkloMedlem sedan juli 20013 295 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 ;)

AlfosMedlem 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

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)