Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 11:21 Der er 18 kommentarer og
2 løsninger

variabel fra iframe til div

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div id="test"></div>
<iframe name="skjult" width="400" height="400" src="about:blank"></iframe>
i denne iframe indlæses følgende variabel:
via test.asp
tekst = "bla.bla."

denne variabel skal så når den er indlæst i iframe - skjult - automatisk sendes til div - test

dette skal vel ske via en funktion - men hvordan ???????
</body>
</html>
Avatar billede w13 Novice
24. februar 2008 - 11:47 #1
Du kan ikke bare sende en variable til et element på siden. Vil du have det udskrevet i div'en?

Indsæt i iframet:

var tekst="bla.bla.";
parent.document.getElementById("test").appendChild(parent.document.createTextNode(tekst));
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 12:15 #2
har lige lavet en skabelon - vil du give et eksempel på hvor jeg skal sætte ind

test1.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<div id="test"></div>
<iframe name="skjult" width="400" height="400" src="test3.asp"></iframe>
<form name="form" method="post" action="test3.asp?Mode=submit" target="skjult" >
  <input type="text" name="tekst">
  <input value="ok ret"  type="submit"  onclick="this.form.submit();" >
</FORM>

</body>
</html>

test3.asp


<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%
tekst = request.form("tekst")
response.write tekst
%>
</body>
</html>
Avatar billede w13 Novice
24. februar 2008 - 13:12 #3
Nu sagde du jo intet om en ASP-variable. :) Da du oprettede spørgsmålet under JavaScript, gik jeg ud fra, variablen også var JavaScript.

Men det skulle kunne gøres således:

test3.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<%tekst=request.form("tekst")%>
<script type="text/javascript" language="javascript">
parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));
</script>
<%response.write tekst%>
</body>
</html>
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 13:46 #4
det må du undskylde - men sidder med et projekt hvor jeg skal have det sat ind - så dette er bare et simpelt eksempel - men nu virker det som det skal
tusind tak
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 13:58 #5
lige et lille tillægsspørgsmål :

hvordan får jeg lige div til at tømme når jeg indtaster noget nyt - som den er nu bliver det bare længere og længere ????
Avatar billede w13 Novice
24. februar 2008 - 14:03 #6
Så vil det være lettest, hvis du sætter:
  <div id="test"></div>
til:
  <div id="test">&nbsp;</div>

For så kan du bare rette:
  parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));
til:
  parent.document.getElementById("test").removeChild(parent.document.getElementById("test").firstChild);
  parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));
Avatar billede olebole Juniormester
24. februar 2008 - 14:29 #7
<ole>

w13 >> Mon ikke du mener:
    parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));

- ændres til:
    parent.document.getElementById("test").firstChild.nodeValue = "<%=tekst%>";

Der er vist ingen grund til at fjerne tekstnoden for at tilføje en ny  ;o)

/mvh
</bole>
Avatar billede olebole Juniormester
24. februar 2008 - 14:31 #8
- der var vist noget, der distraherede dig midt i kommentaren. Første del er helt korrekt, men så virker det, somom noget gjorde, du tabte tråden/idéen  ;D
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 14:42 #9
og det virker bare som det skal - men hvis jeg nu skriver således

<%
tekst ="<table width='500' border='1' cellspacing='0' cellpadding='0'>"
tekst = tekst & "<tr> <td>"&request("tekst")&"</td></tr></table>"
%>
<script type="text/javascript" language="javascript">
parent.document.getElementById("test").removeChild(parent.document.getElementById("test").firstChild);
    parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));


</script>

så kører det ikke ud i en tabel - men udskrives som det står ???

ups - når man rækker fanden en lillefinger så tager han hele armen ;-))))
Avatar billede w13 Novice
24. februar 2008 - 15:01 #10
Olebole>> Ja, der gik et eller andet helt galt dér. :) Det skulle self. være, som du skrev.

mitbrugernavn>> Du skal lige bruge den kode, Olebole foreslår.
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 15:09 #11
no - har sat den til dette

<%
tekst ="<table width='500' border='1' cellspacing='0' cellpadding='0'>"
tekst = tekst & "<tr> <td>"&request("tekst")&"</td></tr></table>"
%>
<script type="text/javascript" language="javascript">
//parent.document.getElementById("test").removeChild(parent.document.getElementById("test").firstChild);
  //  parent.document.getElementById("test").appendChild(parent.document.createTextNode("<%=tekst%>"));
parent.document.getElementById("test").firstChild.nodeValue = "<%=tekst%>";


</script>

og i div skriver den lige som det står her
<table width='500' border='1' cellspacing='0' cellpadding='0'><tr> <td>hej</td></tr></table>

og ikke en tabel med tekst i
Avatar billede w13 Novice
24. februar 2008 - 15:21 #12
Nemlig. Du kan ikke indsætte HTML på den måde, medmindre du:
a) bruger den ikke-valide metode innerHTML
b) har en funktion, der fungerer som innerHTML, men opretter med DOM (Document Object Model)

I øvrigt _skal_ der i et table-element være et tbody-element.
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 15:31 #13
og hvordan gør jeg så lige det ???? - 100 point på højkant - et stykke script på det... please
Avatar billede w13 Novice
24. februar 2008 - 15:45 #14
Du kan ikke udlove flere point her.

Men du kan gøre det - invalidt - med innerHTML, sådan her:

<%tekst="<table style='width:500px;border:1px;border-collapse:collapse'>"
tekst=tekst&"<tbody><tr><td>"&request("tekst")&"</td></tr></tbody></table>"%>

<script type="text/javascript" language="javascript">
arent.document.getElementById("test").innerHTML="<%=tekst%>";
</script>
Avatar billede w13 Novice
24. februar 2008 - 15:47 #15
Hov, der manglede et P:

<%tekst="<table style='width:500px;border:1px;border-collapse:collapse'>"
tekst=tekst&"<tbody><tr><td>"&request("tekst")&"</td></tr></tbody></table>"%>

<script type="text/javascript" language="javascript">
parent.document.getElementById("test").innerHTML="<%=tekst%>";
</script>

Det er dog en meget uhensigtsmæssig kode, men jeg kan ikke lave det ordentligt med DOM uden at kende alle aspekter af det, du er ved at programmere.
Avatar billede olebole Juniormester
24. februar 2008 - 17:44 #16
- og jeg må lige indsparke et link i den forbindelse:
  http://www.dengodekode.dk/artikler/DOM/no_innerhtml.php  ;o)
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 19:04 #17
;-)))))  og det virker bare som det skal nu.

;-)))  jeg har ikke turde skrive noget om innerHTML og slet ikke nu olebole har været inde over - ;-))) kode og gamle sildekasser.

Jeg opretter lige et spørgsmål til dig - w13 - hvor du meget gerne må svarer - point er rigtig godt givet ud for mig - takker og bukker.

olebole -> læg et svar på dette spørgsmål -> http://www.eksperten.dk/spm/820533

det var nemlig en udledning af det jeg har fået til at kører nu.
Avatar billede olebole Juniormester
24. februar 2008 - 21:10 #18
Ja, meget hellere unge 'sildekasser'  =8-)
Avatar billede olebole Juniormester
24. februar 2008 - 21:10 #19
*OLE! ... DET SKREV DU IKKE*
Avatar billede mitbrugernavn Praktikant
24. februar 2008 - 21:58 #20
;-))))  jo jo det står jo sort på hvidt - næste gang jeg sidder med problemer så skriver jeg bare unge 'sildekasser' istedet ;-))))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester