webForumDet fria alternativet

IFRAME forts.

3 svar · 353 visningar · startad av annesophie

annesophieMedlem sedan juni 20012 236 inlägg
#1

...fortsättning från IFRAME.

Använder en trädmeny, en include-fil, som ser ut ungefär såhär:

+Tecken på graviditet
-<a href="java script:loadintoIframe('myframe','content2.asp?id=1')">Graviditetssymptom</a>
-<a href="java script:loadintoIframe('myframe','content2.asp?id=2')">Nidationsblödning</a>
-<a href="java script:loadintoIframe('myframe','content2.asp?id=3')">Skengraviditet</a>
-<a href="java script:loadintoIframe('myframe','content2.asp?id=4')">Graviditetstest</a>

När man klickar på ett menyval så laddas content.asp?ID=X (X är då ett databasID och skickas naturligtvis från menyn) in i en IFRAME på index2.asp enligt nedan.

<iframe id="myframe" src="home.asp" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" style="overflow:visible; width:100%; display:none"></iframe>

Allt tycks funka som det ska...om man alltid klickar på en länk i menyn.

MEN....

Hur får jag dokument att alltid öppna i IFRAMEN?

Tex, om en besökare kör en direkt-länk (låter bli att klicka sig fram genom menyn): http://www.domänen.se/content.asp?ID=1
...så öppnas den ju utanför IFRAMEN.
Sidor ska ju alltid öppnas i IFRAMEN.

Hur fixar man sådant?

Jag har testat:

<head><base target="myframe"></head>

...som då ligger i INDEX2.asp där IFRAME-scriptet ligger, utan resultat.

<iframe name="myframe"...>

...utan resultat.

Brimba föreslog:

<body  <%if len(trim(request.querystring("id")))>0 then response.write "onLoad=""loadintoIframe('myframe','content2.asp?id=" & request.querystring("id") & "');""" END IF %>>

...som iofs gav liite mer men ändå inte det som jag söker.
Nu öppnas http://www.domänen.se/content2.asp?ID=110 förvisso i en IFRAME , men inte på den sidan IFRAMEN verkligen ligger, alltså INDEX2.ASP som har tex menyn, utan i en IFRAME på en egen sida.
Bara IFRAME och content2.asp?ID=110 men ingen meny och ingen omgivande sida för övrigt.

Jag får spatt! :(

Fick rådet att fråga här då det tycks vara en JS-fråga nu.
Någon som kan hjälpa mig?.

*hoppas och önskar*

tohaMedlem sedan dec. 1999707 inlägg
#2

Om jag har förstått det hela riktigt så ligger menyn direkt på sidan INDEX2.asp som är på på top-nivå. På sidan INDEX2.asp finns även en en IFRAME, där beroende på vad användaren väljer i menyn laddas innehållet i IFRAME:en.

Jag är inne på det som Brimba föreslog.

Kod i content2.asp:

...

<script>

function checkMenu()
{
    if (location.href.indexOf("?ID=") == 0)
        return;
    var id = location.href.indexOf("?ID=")+4;
    if (parent == null || parent.location.href.toLowerCase().indexOf("index2.asp") == -1)
    {
        location.href = "index2.asp?ID=" + id;
    }
}

</script>

<body onload="checkMenu()">

...

Kod i index2.asp (samma som Brimba skrev):

<body  <%if len(trim(request.querystring("id")))>0 then response.write "onLoad=""loadintoIframe('myframe','content2.asp?id=" & request.querystring("id") & "');""" END IF %>>

Dvs. om content2.asp-sidan laddas utan menyn finns i parent-fönstret så laddas index2.asp med ett id som redirectar iframe:n till rätt "artikel" i iframe:n.

Jag har inte testat koden, men jag hoppas det fungerar. :)

annesophieMedlem sedan juni 20012 236 inlägg
#3

Ska testa alldeles strax!!!!!!!!! :bire

annesophieMedlem sedan juni 20012 236 inlägg
#4

Jamen JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!
Det funkar! Lite segt innan den laddar om och in i Iframen men visst - det funkar ju! :)
EVIGT TACK för det! :bire :f

Nu slutade menyn att fungera dock av någon märklig anledning, men det kan jag nog lösa själv...hoppas jag. ;)

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