webForumDet fria alternativet

"VAR" anges i iframe och nyttjas utanför. Hur?

JavaScript

7 svar · 306 visningar · startad av haider

Medlem sedan jan. 2003956 inlägg
Frågan#1

Hej

Jag har ett litet skript, där jag har skapat ett antal variabler, ex:

var textA = "Hej hopp";
var textB = "Hejdå";
var textC = "Hej igen";

Denna variabel skapas inne i en fil som befinner sig i en <iframe>

Nu vill jag nyttja variabelvärdet i ett skript utanför iframen och inne i själva sidan.
Hur gör jag?

bakgrundsidé till denna förfrågan

Jag har tre textrader i en sida.
Beroende på vilken iframe som kommer fram, så vill jag att dessa textrader ska ändras.

Då tänkte jag mig, att man kan skapa variabler som representerar texten och sen använda dem i form av document.write(textA); för att placera dem dit de ska.

Tack i förhand

Medlem sedan sep. 20021 655 inlägg
#2

Jag tror inte att det är möjligt att importera variabler på det viset, men du kan göra så här istället:

På din huvudsida har du tre rader som ser ut så här:

<span id="text1">Här står något</span><br />
<span id="text2">Här står också något</span><br />
<span id="text3">Och slutligen här</span>

På huvudsidan ligger också din iframe, som du har följande kod i (i head):

<script type="text/javascript">
window.onload=function(){
    parent.document.getElementById("text1").innerHTML = "Ny text 1";
    parent.document.getElementById("text2").innerHTML = "Ny text 2";
    parent.document.getElementById("text3").innerHTML = "Ny text 3";
}
</script>
Medlem sedan jan. 2003956 inlägg
#3

Däim va ni är smarta här.
Jag har suttit o klurat med detta i ett bra tag.

Jag glömmer jämt att forumet finns och försöker knåpa ihop det själv. Så är det med att vara grafiker o ge sig in på skripting :r

Ska testa det omedelbart

ciao

Medlem sedan apr. 20003 174 inlägg
#4

haider: Ett litet tips bara, läs punk 8 på den här sidan. :)

Medlem sedan aug. 20039 340 inlägg
#5

Jag trodde du ville ha det tvärtom, att hämta en variabel från en iframe... Jag kan inte låta bli att posta koden... :)

hamtatill.html

<html>
<iframe name="eniframe" src="hamtafran.html"></iframe>
<script>
window.onload = function (){
	try{	
		alert(document.frames["eniframe"].window.eval("hamta"));
	}catch(e){
		alert("Fel, sidan antaligen inte laddad...");
	}
}
</script>
</html>

hamtafran.html

<script>

hamta = "Exempel";

</script>
Medlem sedan jan. 2003956 inlägg
#6

Palle: :r Oj, nu när du skrev det såg jag mitt fel.

Det rättade jag till nu.

Fast vad vet du, jag kanske accepterade mitt eget svar (??) ;)

tack för tipsen i alla fall - det var ändå första gången jag använt denna funktion

Medlem sedan jan. 2003956 inlägg
#7

nitro2k01: Jo, du har uppfattat det rätt, jag ville hämta ut en variabel från en iframe.

Men din lösning var lite omständig.
Jag förstår logiken i den, men eftersom jag har tre textrader som jag vill hämta in, så känns decgaps lösning lite lättare.

tack ändå :)

Däremot undrar jag om följande tillägg:

Jag vill använda denna lösning till en länk.
Men antag att jag har fem länkar med varsin beskrivning:

Bild1_text1: "Rubrik"
Bild1_text2: "Datum"
Bild1_text3: "Info"

Bild2_text1: "Rubrik"
Bild2_text2: "Datum"
Bild2_text3: "Info"

osv.

Sen har jag själva <a> taggen.
Kan man på något sätt göra, så att skriptet går att anropa via an onClick="funktion();" där man i funktionen anger vilken av texterna som ska användas, ex. Bild1-texterna

samt att man har en variabel-depå där man anger texterna.

var jag tydlig?

tackar i förhand

Medlem sedan juni 20004 308 inlägg
#8

Typ:

var texter=new Array();
texter[0]=["Rubrik 0","Datum 0","Info 0"];
texter[1]=["Rubrik 1","Datum 1","Info 1"];
texter[2]=["Rubrik 2","Datum 2","Info 2"];
//...osv.
function displayIt(n){
parent.document.getElementById("text1").innerHTML = texter[n][0];
parent.document.getElementById("text2").innerHTML = texter[n][1];
parent.document.getElementById("text3").innerHTML = texter[n][2];
}

och sedan onclick="displayIt(0);" eller onclick="displayIt(1);" osv.

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