23. maj 2003 - 23:02
Der er
43 kommentarer og 2 løsninger
variabel fra et vindue til et andet
Hey alle Jeg er ved at lave et artikel system, og jeg vil lave sådan at man kan indsætte billeder, min tanke er at man trykke på et link (indsæt billed) og så kommer der et vindue, hvor man kan uploade et billed fra sin harddisk, når den har uploadet billedet, så skal fil navnet smides tilbage til start vinduet, og ind i et textarea. Hvordan gør jeg det ??? Håber at i forstår. Thomas
Annonceindlæg fra Netic
Kan klares med javascript, noget ala dette... Sæt det ind i <head> delen på siden der vises i dit popup vindue. Udskift 'din_form' med navnet på formen der indeholder dit textarea, og 'dit_textarea' med navnet på dit textarea. Husk også lige at skifte 'filnavn' ud med den korrekte variabel. <script type="text/javascript"> var filnavn = '<%= filnavn %>' ; ta = window.opener.forms['din_form'].elements['dit_textarea'] ; ta.value = ta.value + filnavn ; </script>
Tak, tjekker det lige her en af dagene, og vender tilbage... :) Thomas
Hvad hvis jeg skal lave sådan at der er en knap lige ved siden af tekst feltet, og når man trykker så bliver der smidt noget tekst ind i tekst feltet ??? Jeg har prøvet at skrive: function input(tekst){ ta = ret.tekst.value = ret.tekst.value + tekst; } og så kan den ved input(" ") Thomas
på din knap laver du: <input type=button ... onclick="this.form.tekst.value+=' '">
Er det muligt at man kan registrere om der er noget tekst markeret i et tekst felt ??? Altså sådan at man kunne markere noget af en tekst og så trykke på bold knappen, og så skal bold koderne blive sat ind på hverside af det markerede.. Thomas
Det kan man godt men såvidt jeg husker er det ikke cross-browser ...
cross-browser ??? Ved du hvor jeg kan finde noget om det.. Det er ikke livsnødvendigt, men det ville være en meget fed ting at have på. :) Thomas
Tastede lige javascript textrange i google og fik 968 links og det er M$ only
okay, det prøver jeg så... Den function som tangveje har lavet, den kan jeg ikke få til at virke.. jeg har sat det her ind lige efter at den har uploadet billedet.. <script type="text/javascript"> var filnavn = '<%= File.Filename %>' ; ta = window.opener.forms['ret'].elements['tekst'] ; ta.value = ta.value + filnavn ; window.close() </script> Men der sker ikke noget... Thomas
Har du, som tangveje skriver, sat det ind i head-delen af dit script til popuppen ?-)
nej for så kan jeg ikke fange variablen med fil navnet... Kan man ikke lave sådan en function som man så kalder når den har uploadet billedet, og den så gør det den skal... ??? Thomas
Jo, hvis billedet vises har det .src som du kan hente med javascript, ellers må du sørge for det findes på en eller anden måde
fil navnet kommer ud fra et uploadings script, hvor at fil navnet findes ved File.Filename Så jeg ved ikke hvordan jeg ellers skal finde det... Thomas
Hvis du opdaterer hele siden -- og det gætter jeg på du gør -- kan du tilføje filnavnet ind i feltets value direkte ... à la den måde sættes ind kan nada asp så jeg må holde mig til javascript og principperne ...
det tror jeg ikke virker.. den anden måde som du viste mig... den referere jo ikke til hvilket vindue som det skal foregå i... jeg har jo 2 vinduer, et hvor variablen er, og et hvor der er et tekst felt, og der skulle variablen meget gerne ende. Thomas
Prøv lige om: <script type="text/javascript"> var filnavn = '<%= File.Filename %>' ; alert(filnavn); ta = window.opener.forms['ret'].elements['tekst'] ; ta.value = ta.value + filnavn ; window.close() </script> ikke giver dig en alert-box
jo der kom en alert med filnavnet... Men hvordan kommer jeg videre derfra...
Jamen så kom der vel også noget ekstra tekst i den input, som hedder tekst ...
nej, desværre... det virker ikke... Hvad gør den der 'opener' i window.opener.form... Thomas
opener refererer til det vindues-objekt som har udført 'åbningen' af popup-vinduet (vha. en javascript window.open eller <a ... target="_blank"> ) Hvis du har flere frames i den side, som åbner vinduet kan det være fejlkilden, da hver frame er et vindue-objekt
Det har jeg ikke, og det virker stadigvæk ikke... Og jeg åbner vinduet med: java script:window.open('upload.asp','upload','width=300,height=150,resize=no') Thomas
Har du så en form med name="ret" og på den form en input med type=text og name="tekst"
det er ikke en input, det er et textarea... som hedder tekst Men det gør vel ikke noget ??? Thomas
Hvis jeg selv skulle skrive det, var det blevet sådan her (men det burde ikke gøre nogen fårskel ;O): <script type="text/javascript"> var filnavn = '<%= File.Filename %>' ; opener.forms['ret'].elements['tekst'].value+=filnavn ; </script>
arh ... jeg havde jo nok skrevet: <script language="javascript" type="text/javascript">
Er der ikke andre måder at få en variabel fra et vindue til et andet.. For jeg kan ikke få det til at virke... Det er lidt federe at den bliver overført til textfeltet selv, istedet for at man skal kopiere den i den ene vindue, og sætte den ind i det andet.. Thomas
Test det ved at forenkle kommandoen: opener.ret.tekst.value+=filnavn ; Sæt en alertbox ind: alert(opener.title) alert(opener.ret.name) alert(opener.ret.tekst.value) -- jeg har det til at virke med andre navne, så ???-|
okay... jeg prøver videre.. jeg er ikke så vild til Javascript, så derfor spørger jeg hele tiden.. :)
nu har jeg skrevet sådan her... <script language="javascript" type="text/javascript"> var filnavn = '<%= File.Filename %>' ; opener.forms['ret'].elements['tekst'].value+=filnavn ; alert(opener.title) alert(opener.ret.name) alert(opener.ret.tekst.value) </script> Og der sker ikke noget.. Thomas
Der sker slet ikke noget... Thomas
nu fik jeg alertsne frem de siger: 1) Undefined 2) ret 3) etellerandet som hurtigt forsvinder igen.. :|
alert(opener.ret.tekst.name) ?-)
den siger tekst.. :) Thomas
-- hurtigt forsvinder ?? <script language="javascript" type="text/javascript"> alert(opener.ret.tekst.value) var filnavn = '<%= File.Filename %>' ; opener.forms['ret'].elements['tekst'].value+=filnavn ; alert(opener.ret.tekst.value) </script>
Så kommer der kun en alert box, hvor der står hvad der står i mit tekst felt... Men der kommer ikke 2... Det er som om at den ikke kan vise alerts efter at den har ændret tekst's value.. Thomas
Men du genererer siden fra dit asp, ikke? Sådan at var filnavn = '<%= File.Filename %>' ; ser f.eks. sådan ud: var filnavn = 'hans-peter.jpg' ;
ja... det er sandt.. Thomas
Takker for points ;~} -- fik du prøvet: <script language="javascript" type="text/javascript"> var filnavn = '<%= File.Filename %>' ; opener.ret.tekst.value+=filnavn ; </script>
den virker... nice... :) Mange gange tak.. Thomas
Kurser inden for grundlæggende programmering