webForumDet fria alternativet

Länk som öppnar sida och laddar in innehåll i iframe?

HTML & CSS

8 svar · 1 211 visningar · startad av 02simond

Medlem sedan feb. 200742 inlägg
Frågan#1

Hej
Jag håller på med ett html-nyhetsbrev och vill ha länkar till min hemsida. Jag vill att länkarna ska länka till en sida och även ladda in innehåll i en iframe som finns på den sidan. Hur gör man det enklast?
Tack

Medlem sedan juli 20013 378 inlägg
#2

Hmm..

På samma sätt som vi pratade om i den här tråden häromdan - http://www.webforum.nu/showthread.php?t=173731 ;)

Bygg en "inramarsida" som kan läsa av den sida som skall "iframe-laddas" från en "URL-parameter".

Bygg sedan ett script som du lägger i alla de sidor som du länkar till från nyhetsbrevet. Detta script byger du så att det laddar om "inramarsidan" med sin egen adress tillagd som "URL-parameter" om sidan kommer på att det inte redan är gjort.

Fungerande exempel (på sida som är tänkt att länkas från ditt nyhetsbrev):
http://member.webforum.nu/2241/iframeinramare-innehall.html - den sidan hamnar alltså inne i iframen till slut tack vare sitt script!

Du bör också kunna bygga ut exemplet om det är så att du menar att länken från nyhetsbrevet skall styra innehållet direkt (utan omladdninar) - men det är en annan Scripting-fråga det ;)

Medlem sedan feb. 200742 inlägg
#3

jarvklo skrev:

Hmm..

På samma sätt som vi pratade om i den här tråden häromdan - http://www.webforum.nu/showthread.php?t=173731 ;)

Bygg en "inramarsida" som kan läsa av den sida som skall "iframe-laddas" från en "URL-parameter".

Bygg sedan ett script som du lägger i alla de sidor som du länkar till från nyhetsbrevet. Detta script byger du så att det laddar om "inramarsidan" med sin egen adress tillagd som "URL-parameter" om sidan kommer på att det inte redan är gjort.

Fungerande exempel (på sida som är tänkt att länkas från ditt nyhetsbrev):
http://member.webforum.nu/2241/iframeinramare-innehall.html - den sidan hamnar alltså inne i iframen till slut tack vare sitt script!

Du bör också kunna bygga ut exemplet om det är så att du menar att länken från nyhetsbrevet skall styra innehållet direkt (utan omladdninar) - men det är en annan Scripting-fråga det ;)

Jag testade lite och fick det inte att funka. Jag fick det bara att funka så på min hemsida som den andra trådskaparen hade behövt.
Jag testade att göra en länk som dne du hade: http://member.webforum.nu/2241/iframeinramarsidan.html?inramad=http://member.webforum.nu/2241/iframeinramare-innehall.html

Kan man använda en sån utan att ha några script alls?
För den funkade inte med lr utan script hehe, lr jag gjorde väl fel men hur gör man?

Medlem sedan juli 20013 378 inlägg
#4

Hmm..

Utan scripts får du göra en variant av din sida för varje nyhetsbrev, och handkoda in src i iframe-elementet från fall till fall ;)

Men jag kanske missförstår vad du försöker göra...
Vad är det för material du vill ladda in i din iframe, och hur fritt vill du kunna styra det mha länken i nyhetsbrevet?

Har du en länk till ditt misslyckade försök, kanske vi kan reda ut vad det var som inte fungerade ?

Medlem sedan feb. 200742 inlägg
#5

jag har denna hemsida: http://enelesfilm.se
I index laddar jag in sidor i en iframe som heter huvud.
Från ett nyhetsbrev vill jag länka till indexsidan där en sida laddas in i huvud-iframen gentemot hem.html som är standard.

Medlem sedan juli 20013 378 inlägg
#6

Hmm...

Aha - du vill bara knyta det till en sida.
Här är principen för en sådan lösning (har inte crossbrowservrifierat den dock ;) ) :

<!-- lägg detta script sist på startsidan, alldeles före </body> -->

<script type="text/javascript"> 
 /* Detta script finns att hämta på [url]http://www.jojoxx.net[/url] och
   får användas fritt så länge som dessa rader står kvar. */
function getVar(varname) {
   var st = unescape(location.search);
   st = st.replace(/\+/g," ");
   if (st.indexOf(varname) != -1){
      var tempst = st.substring(st.indexOf(varname + "=") + varname.length + 1,st.length);
      if (tempst.indexOf("&") != -1) {
         var newtemp = tempst.substring(0, tempst.indexOf("&"));
         return newtemp;
      } else {
         return tempst;
      }
   } else {
      return("");
   }
}

/* här är själva funktionaliteten som byter länk på källfilen för din iframe huvud efter vad som står i ?erbjudande=xxxx i URL:en */

/* Bygg ut denna med logik för att peka ut ditt erbjudande */
if (getVar('erbjudande') == "vecka14") {
        window.frames['huvud'].location='http://jarvklo.se';
}
</script>

Erbjudandet laddas alltså in i din "huvud"-iframe via script från startsidan.
Vilka sidor som skall laddas döljs via villkor i scriptet (du får utöka scriptet med egen logik).

Testa:
http://member.webforum.nu/2241/iframeerbjudande.html
http://member.webforum.nu/2241/iframeerbjudande.html?erbjudande=vecka14

Medlem sedan feb. 200742 inlägg
#7

hmm förstår helt hur detta ska funka men när jag testar din andra länk så laddas inte jarvklo.se in i iframen. Det är bara hwebforum.nu som ligger kvar ändå. Detta händer i både Safari och Firefox

Medlem sedan juli 20013 378 inlägg
#8

Mittåt!

Byt ut

document.frames

mot

window.frames

så funkar det i Fx och Safari också (brukar blanda ihop dessa - det är inte så ofta jag hanterar frames numera pga dess inneboende nackdelar - men det är en annan historia)

Sorry 'bout the confusion - exemplet är numera uppdaterat :birp

Medlem sedan feb. 200742 inlägg
#9

Grymt! Funkar perfekt!
Tack så hemskt mycket!

262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)