Just nu i M3-nätverket
Gå till innehåll

frames och javascript?


Christian B

Rekommendera Poster

Christian B

Hej nu skulle jag väldigt gärna mottaga tips om hur jag skall kunna se till så att besökare inte hamnar utanför framesetet när de besöker hemsidan.

 

Vad jag är ute efter är ett script som skickar in den begärda sidan i ett frameset. Jag är alltså inte ute efter ett script som bara skickar besökaren till startsidan utan vill alltså kunna ladda begärt dokument i framesetet... Jag försöker förtydliga, såhär ser min situation ut: Vi har ett diskussionsforum där besökare kan tipsa andra besökare om olika inlägg. När besökaren skickar tipset får mottagaren av tipset ett mail med adressen till det aktuella inlägget.

 

Det är här jag vill trolla... alltså lägga in sidan med det aktuella inlägget i huvudhemsidans frameset. Det skulle alltså vara lämpligt att man på något sätt kunde generera framesetets src-hänvisningar dynamiskt. Är detta möjligt? Om ja, hur gör jag?

 

Mycket tacksam för svar!

 

Med vänlig hälsning

Länk till kommentar
Dela på andra webbplatser

Christian B

Glömde att tillägga att jag naturligtvis helst vill använda ett serverbaserat script om möjligt.

Länk till kommentar
Dela på andra webbplatser

Det bästa sättet är att sluta använda frames! Kanske inte vad du letade efter, men ändå den bästa lösningen. Skapa includefiler som innehåller menyer etc och som ligger i tabeller med samma utseende som din nuvarande sida. Då kan du alltid länka direkt till en sida och alla kommer att se likadana ut.

 

<!--- include file="sidstart.asp">

 

Här ligger den unika koden för varje sida.

 

<!--- include file="sidslut.asp">

Länk till kommentar
Dela på andra webbplatser

Christian B

Hej Mats,

Nej det var inte det jag letade efter men tack ändå för ditt tips, det är ju alltid en sista lösning om jag inte kan få det att funka på annat sätt.

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

Ja det går att göra och inte så svårt, fast lite krångligt....

 

1. Du måste kolla om sidan är i dina frames eller ej

2. Kolla vilken sida det är du tittar på

3. Ha en array(eller liknande) där du kollar vilka olika framessidor som skall finnas när denna sida visas.

4. ladda de olika sidorna i de olika framesen

 

Om det går att lösa med Serverscript vet jag inte, men det borde väl gå att lösa med JScript iallafall och det kan du ju köra på server.

 

- Magnus

Länk till kommentar
Dela på andra webbplatser

Christian B

Hej

 

Jag lyckades lösa det genom att använda ett javascript som skickar vidare besökaren om han är utanför framesetet , Sidan som han skickas till är ett frameset där jag laddar föregående sida på anvisad plats i framesetet med hjälp av en session från föregående sida... hmm kanske inte är så bra på att förklara...

 

Hur som helst, finns det något sätt att byta ut följande javascript som körs på klientsidan så att även de som vägrar att tillåta javascript kommer rätt?

 

---

<script language="javascript">

<!--

if (self == parent)

document.location="forumet.asp";

//-->

</script>

---

 

Jag testade med att lägga in

--

<%

sidref=request.servervariables("http_referer")

if sidref = "" then

response.redirect("forumet.asp")

end if

%>

---

... men det funkar inget vidare av två anledningar, för det första så kan man ju inte vara säker på att någon inte gör en länk till mitt forum och då blir ju inte sidref tom, dvs då laddas inget frameset. Detta skulle jag dock kunna leva med men det andra problemet är värre och det är att det inte fungerar i netscape, netscape laddar nämligen framesetet i evighet om man skriver som jag gjort ovan... inget vidare alltså.

 

Alla tips mottages tacksamt!

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

Din javascript kod borde gå att köra i JScript alltså kan du skriva följande:

 

<script language="JScript" Runat="server">

 

</scrip>

 

Vilket gör att scriptet kommer att utföras på servern och inte på klienten...

 

- magnus

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...