webForumDet fria alternativet

Buggjakt i en "framefixer"

0 svar · 260 visningar · startad av haider

haiderMedlem sedan jan. 2003956 inlägg
#1

Tjena

Det var längesen jag arbetade med frames, men nu var det dags, och det var även tags att tampas med dess tillhörande problem.
Om man via sökmotor hamnar i en sida som egentligen bör finnas inne i en frame, så blir det knas.

Så jag använder mig av en s.k. "framefixer", ett javascript som är enligt följande:

window.onload=ff_init;
function ff_init(){
	 mainFrame.location.href=(location.search.length>1)?location.search.substring(1):"home.html";
}

Så här långt är allt frid o fröjd.
mainFrame är namnet på framen dit sidan ska hamna
home.html är sidan som annars används om det inte anges nåt efter ?-tecknet (nu i skrivandets stund undrar jag om detta ens behövs...)

Mitt problem är följende.
- När jag går in i en sida som egentligen bör vara placerad inne i en Frame, körs skriptet och allt placeras tillrätta.
- Adressraden heter nu inte https://www.sida.se utan https://www.sidan.se/?sidan_i_framen.html
- När jag går runt i sidan och sen uppdaterar med tex F5, så refreshar den två gånger och andra gången hamnar jag tillbaka till "startläget", det vill säga den sida som rättades till och lades in i framen.

Jag har försökt tänka fram en lösning rent teoretiskt, men fattar inte ens varför den refreshar två gånger. Det måste ha att göra med ordningen för när framefix-scriptet körs.

Jag försökte med att utföra en kontroll, om hurvida mainFrame innehåller nåt eller inte, det vill säga om den redan innehåller nåt, så ska den inte köra ff_init() som jag beskrev ovan.
Men jag får inte rätt på denna kontroll, vare sig med =='' eller !='', alltså enligt:

if (mainFrame.location.href=='') { ... ..}

Tacksam för feedback! :r

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)