WN

WN (https://www.wn.se/forum/index.php)
-   Klientsidans teknologier, design och grafik (https://www.wn.se/forum/forumdisplay.php?f=12)
-   -   Länka till sida i iframe på sidan (https://www.wn.se/forum/showthread.php?t=1041954)

BarateaU 2010-05-09 11:59

Länka till sida i iframe på sidan
 
Har en sida.

Och på sidan har jag en sida som är en iframe sida.
Dvs jag presenterar en butik i en del av sidan via iframe.

Och jag vill kunna länka till produkter i butiken från andra delar av sidan till iframe sidan.
Så man inte "bara" kan komma åt framsidan av butiken utan även kunna länka till spec produkter i butiken.

Hur åstakommer jag att jag kan länka till sida i en iframe?

Vi säger att domänen är:
babababa.se

butiken med iframen ligger:
babababa.se/butik.html -> som i sin tur har en iframe till butiken på annan adress.

Om jag nu vill länka till en produkt och att de skall presenteras i babababa.se/butik.html

Sökt och de kanske funkar att göra med javascript.

Hittade detta, testade att använda koden men fick de inte att lira, ser ni nått fel? Eller har andra förslag?
Citat:

Can't be done with HTML alone, but here's a JavaScript solution.

Use a delimiter in your link such as a question mark. Don't worry, the browser will load the URL correctly even with the delimiter. Like so:

Code:
<a href="page_with_iframe.htm?page_to_load_into_iFram e.htm">


On your page with the iFrame, use a JavaScript to parse the part of the URL after the delimiter like this:

Code:
<script type="text/javascript" language="javascript">
function loadIF() {
iFrameSrc=location.href.split('?');
if ( iFrameSrc[1] != null ) {
document.getElementById('iFrameName').src=iFrameSr c[1];
}
else {
document.getElementById('iFrameName').src='default _page.htm'
}
}
</script>


In this example, you want the script in the head of the document, and your function call in the opening <body> tag:

Code:
<body onload="loadIF()">


You can run the script without the function wrapper and <body onload="loadIF()"> function call as long as the script appears after the iFrame code -- the iFrame must be created on the page before the script can find it.

fabian 2010-05-09 12:04

Är användandet av iframes geomtänkt? Du är medveten om att det inte är det bästa sättet att bygga sin sajt på va?

BarateaU 2010-05-09 13:43

Citat:

Ursprungligen postat av fabian (Inlägg 20354523)
Är användandet av iframes geomtänkt? Du är medveten om att det inte är det bästa sättet att bygga sin sajt på va?



Yes, de är ok.
Medveten om att de inte är de bästa, men man tager de man haver.

kw_wasabi 2010-05-09 14:58

Om jag fattat det rätt så vill du kunna länka till en specifik sida i din iframe. Testa då att ge din i frame ett name-attribut som i koden nedan:

<iframe src="http://www.babababa.se/butik.html" width="900" height="500" name="butiken"></iframe>

Därefter kan du länka till valfri sida inom iframen och använda target-attribut:

<a href="http://www.babababa.se/produkter.html" target="butiken">Produkter</a>

BarateaU 2010-05-10 12:10

Citat:

Ursprungligen postat av kw_wasabi (Inlägg 20354541)
Om jag fattat det rätt så vill du kunna länka till en specifik sida i din iframe. Testa då att ge din i frame ett name-attribut som i koden nedan:

<iframe src="http://www.babababa.se/butik.html" width="900" height="500" name="butiken"></iframe>

Därefter kan du länka till valfri sida inom iframen och använda target-attribut:

<a href="http://www.babababa.se/produkter.html" target="butiken">Produkter</a>

Mja de funkade så länge de var på samma sida som länkningen skedde ifrån.

Men om jag vill länka från t.ex. index sidan till den andra sidan blir de knepigare då den inte känner till "name=butik" då den koden enbart står på den andar sidan som har iframen, hur löser jag detta.

Går de att säga typ "target="site.html/butiken" ? så den fattar att den skall gå till sidan med iframen först och sedan vart targeten är = butiken", eller så snurrar jag bara till det mer.

SimonP 2010-05-10 16:45

Om iframe-src:en ligger på en annan domän går det ej pga säkerhetsspärrar som finns i de flesta webbläsare.

BarateaU 2010-05-10 17:37

De lät ju inge vidare.
Men någon som ser något fel i koden i topicen som skall kunna vara någon lösning fast med javascript?

Kod:

<a href="page_with_iframe.htm?page_to_load_into_iFram e.htm">
Kod:

<script type="text/javascript" language="javascript">
function loadIF() {
iFrameSrc=location.href.split('?');
if ( iFrameSrc[1] != null ) {
document.getElementById('iFrameName').src=iFrameSr c[1];
}
else {
document.getElementById('iFrameName').src='default _page.htm'
}
}
</script>

Kod:

<body onload="loadIF()">
PS! ifall någon inte förstår vad jag medar så har jag inge problem att skicka sidans adress, bara att jag inte vill skriva ut den live när den pillas med.
Nothing fancy mate.

SimonP 2010-05-10 17:54

Citat:

Ursprungligen postat av BarateaU (Inlägg 20354704)
De lät ju inge vidare.

Kanske missuppfattade dig, men det som funkar är att Startsidan kan byta url i framen, men om de ligger på olika domäner kan de aldrig "kommunicera" med varandra via javascript.

Så här borde fungera:
Kod:

<a href="javascript:void(0);" onclick="loadIF('page_to_load_into_iFrame.htm');">
Kod:

<script type="text/javascript" language="javascript">
function loadIF(url)
{
 document.getElementById('iFrameName').src="http://www.doman.se/"+url;
}
</script>

Kod:

<body onload="loadIF('default.htm');">

BarateaU 2010-05-10 18:08

Citat:

Ursprungligen postat av SimonP (Inlägg 20354705)
Kanske missuppfattade dig, men det som funkar är att Startsidan kan byta url i framen, men om de ligger på olika domäner kan de aldrig "kommunicera" med varandra via javascript.

Så här borde fungera:
Kod:

<a href="javascript:void(0);" onclick="loadIF('page_to_load_into_iFrame.htm');">
Kod:

<script type="text/javascript" language="javascript">
function loadIF(url)
{
 document.getElementById('iFrameName').src="http://www.doman.se/"+url;
}
</script>

Kod:

<body onload="loadIF('default.htm');">

Förstår inte riktigt.

Index.html
Shoppen.html "shoppen visas via iframe".

Användaren kan kolla i shoppen och browsa runt bäst den vill.
Men låt oss säga att jag vill länka till ett specifikt erbjudande i i shoppen så blir de alltså att jag måste länka först till shoppen.html och sedan berätta för shoppen.html att öppna adressen för produkten i iframen.

Så om jag vill exponera tandborsten i shoppen via index "framsidan" så måste jag lösa hur jag kan "djuplänka" in i iframen på shoppen.html
I teorin skulle jag ju kunna lägga upp shoppen1.index och sedan länka iframen hårt till produkten men är inte ett option anser jag, iframe är så bökigt alla redan :)

SimonP 2010-05-10 18:25

Ok, då förstår jag, den sista koden du postade fungerar utmärkt då, ser inget fel i den.

Edit: iofs, kanske ska byta location.href till document.location.href


Alla tider är GMT +2. Klockan är nu 07:31.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson