Avatar billede vels Nybegynder
02. marts 2004 - 20:00 Der er 27 kommentarer og
1 løsning

indsæt værdi i textarea fra anden frame

Hej

Jeg har en frame side med 2 filer editor.php og editor_menu

Som det ses i editor.php har jeg en menu hvor man kan indsætte noget i textarea'et ved at først at trykke et sted i text areaet hvor man vil have det indsat og der efter trykket på værdien i menuen der skal indsættes.

Nu vil jeg gerne have sådan når man trykker med kurseren i textarea'et og derefter vælger noget i dropdown menuen (som er i det ander frame) bliver indsat i textarea'et hvordan får man det til at spille?

De andre ting jeg indsætter i textareaet indsætter jeg med værdien <a href="java script:void(0)" onmousedown="indsaet('\\sqrt{}')" onmouseup="efter();">Kvadratrod</a>&nbsp;

Det burde man vel kunne sende værdien fra den anden frame til samme funktion som indsætter de andre ting ikke?

*********
index.php
*********
<frameset rows="*" cols="*,152" framespacing="0" frameborder="NO" border="0">
  <frame src="editor.php" name="editor">
  <frame src="editor_menu.php" name="editor_menu" scrolling="NO" noresize>
</frameset>

**********
editor.php
**********
<html>
    <head>
        <title>LaTeX</title>

<script type="text/javascript">
var harFokus
var ie = (document.selection.createRange)?true:false
var elms = ['smiley','ting','andreTing'];

function lukAlt(elmid){
for(i=0;elms.length>i;i++)
  if(elmid!=elms[i])
    document.getElementById(elms[i]).style.display = "none";
}

function visTing(elmid){
lukAlt(elmid);
elm = document.getElementById(elmid);
elm.style.display = (elm.style.display!="block")?"block":"none";
}

function indsaet(smil){
if(ie){
  document.frm.tekst.focus();
  //if (harFokus) {
  rng = document.selection.createRange();
  rng.text = smil;
  //}
}else
  document.frm.tekst.value += smil
}

function efter(){
document.frm.tekst.focus();
}

</script>
<style type="text/css">
.title{
    display:block;
    margin:0px;
    text-align:center;
    border-bottom:1px solid #000;
    background-color:#6777B3;
   
}
.luk{
float:right;


}
.ting{
    border:1px solid #000;
    position:absolute;
    height:100px;width:500px;
    display:none;
    }
</style>
    </head>

<body>
<form action="compile.php" method="post" name='frm'>
Filnavn:<br>
<input name="filnavn" value=".tex"><br>
Tekst<br>
<table width="100%"  border="0">
  <tr>
    <td width="80%">
    <textarea  style="width:800px;height:400px;" name="tekst">



</textarea>

    </td>
 
  </tr>
</table>
<br><br>
<input type="submit" name="Compile" value="Compile"> <input type="reset" name="Rensfelter" value=Reset><br>
<a href="java script:void(0)" onclick="visTing('smiley');">Indsæt Matematik</a> | <a href="java script:void(0)" onclick="visTing('ting');">Greek</a> | <a href="java script:void(0)" onclick="visTing('andreTing');">Tydsk</a> <br>

<div id="smiley" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('smiley')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Matematik&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\frac{}{}')" onmouseup="efter();">Brøk</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('x^{}')" onmouseup="efter();">x^k</a>&nbsp;
<a href="java script:void(0)" onmousedown="indsaet('\\sqrt{}')" onmouseup="efter();">Kvadratrod</a>&nbsp;
</div>

<div id="ting" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('ting')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Greek</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>

<div id="andreTing" class="ting">
<div class="title"><div class="luk"><a href="java script:void(0)" onclick="visTing('andreTing')" title="Luk">X</a>&nbsp;&nbsp;</div>&nbsp;&nbsp;Tydsk&nbsp;</div>
<a href="java script:void(0)" onmousedown="indsaet('\\gamma')" onmouseup="efter();">Gamma</a>&nbsp;
</div>
<br><br><br><br>

 
</form>




<br>
</body>
</html>

***************
editor_menu.php
***************
<SCRIPT>
function link(side) {
  window.open(side, '', 'width=400, height=300');

}
</SCRIPT>   




  <td width="20%" valign="top"><div align="left">Inds&aelig;t billede: </div>
   
    <select name="minSelect" onchange="indsaet(this.value);">

<?php
$dir = "c:/www/eps";

// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
  if ($dh = opendir($dir)) {
      while (($file = readdir($dh)) !== false) {
      if ($file != "." && $file != "..") {

          echo "<option value='\psfig{htb}{0.5}{". $file ."}{billedtekfst}{henvisning}'>$file</option>";
      }
      }
      closedir($dh);
  }
}
?>
  </select>
  </form>
    <br>
    <br>
   
    <a href=java script:link('uploadform.php')>Upload billede</A>

    </td>

***********
Spørgsmålet
***********
Hvordan får jeg dropdown menuen fra editor_menu.php til at indsætte værdien i textareaet (i det andet frame) der hvor man har placeret curseren?
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:08 #1
mener du: parent.FRAMENAVN.document.FORMNAVN.FELNAVN.value += "ny tekst her"; ?
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:09 #2
FELNAVN = FELTNAVN (navnet på feltet hvor "ny tekst her" skal indsættes.. textarea?)
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:10 #3
thesurfer: nej. den der tilføjer bare teksten i slutningen af teksten. det han leder efter er en måde at putte det ind der hvor cursoren står.

=)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:13 #4
Det har du ret i :)
hvad så med (går ud fra at det er her det skal bruges..) ?:

  parent.FRAMENAVN.document.frm.tekst.focus();
  rng = document.selection.createRange();
  rng.text = smil;
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:15 #5
Jeg går ud fra at "i det andet frame" = framen "editor".. hvis ja: parent.editor.document....
Avatar billede vels Nybegynder
02. marts 2004 - 20:15 #6
3xm Yepp.. hvis i nu ser på editor.php så er der sådan set en funktion der gør det.... hvis i sætter cursoren et sted i textarea'et og trykker på "Indsæt matematik" og derefter trykker "Brøk", så indsætter den det der...

Burde det ikke også kunne laves sådan man gør det samme... bare man vælge det der skal i textarea'et via en dropdown i en anden frame?
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:17 #7
Det er nøjagtigt det samme.
Avatar billede vels Nybegynder
02. marts 2004 - 20:19 #8
okay det vil sige jeg skal bare skal tilføje det samme i editor_menu.php som i editor.php men bare add frame variablen?
Avatar billede vels Nybegynder
02. marts 2004 - 20:19 #9
altså <script> </script> delen
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:21 #10
Nu er jeg lost :)
Jeg troede at dropdown menuen skulle være sammen med ikonerne..? Altså på samme side..
Eller skal dropdown være på samme side som selve tekst-området man skriver i?
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:22 #11
husk lige at
  parent.FRAMENAVN.document.frm.tekst.focus();
  rng = document.selection.createRange();
  rng.text = smil;
så vidt jeg kan se kun virker i ie. det er ikke pænt.

=)
Avatar billede vels Nybegynder
02. marts 2004 - 20:23 #12
dropdown skal ikke være på samme side som textarea'et (dvs dropdown skal være i editor_menu.php)


har nemlig selv en version hvor den er på samme side som textarea'et men det spiller ikke rigtig når jeg vil opdatere dropdown'en uden textarea'et bliver rydet, så derfor er jeg vel nød til at bruge frames så dropdown kommer i sin egen frame hvor jeg kan refresh framen uden textarea'et bliver tømt ved refresh.
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:23 #13
Hvis jeg ikke tager meget fejl, så er det denne del der kun virker i IE: document.selection.createRange();

Denne del skulle gerne virke i alle browsere:
parent.FRAMENAVN.document.frm.tekst.focus();
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:29 #14
thesurfer: det har du helt ret i. men det er også document.selection.createRange(); der er den vigtige del af det script.

=)
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:30 #15
vels: ikke fordi det her skal gøres til en diskussion om browsere, men hvis du vælger dig en ordentlig browser, så husker den hvad der står i felterne - også selvom man refresher.

=)
Avatar billede vels Nybegynder
02. marts 2004 - 20:32 #16
okay hvilke browsere? for hvis jeg kan undgå det der frame noget så vil jeg da helst det.... fordi jeg har det til at virke uden frame... men har bare ikke prøvet refresh da jeg troede den ville tømme det...
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:37 #17
mozilla husker hvad der er indtastet i felterne. medmindre man laver den store refresh (ctrl+f5 / ctrl+alt+r).

http://mozilla.org/
Avatar billede vels Nybegynder
02. marts 2004 - 20:37 #18
har fået det til at virke :)
Avatar billede thesurfer Nybegynder
02. marts 2004 - 20:39 #19
hmm.. er det en chat/tagwall/hvad?
En chat skal opdateres/refreshes.. det skal en tagwall ikke..

mht til "ordentlig browser...", så er Mozilla Firefox en "ordentlig browser" :)
Men: document.selection.createRange(); understøttes KUN af Internet Explorer.

dvs, man kan kun tilføje smilies, til slutningn af den tekst man har skrevet..

f.eks. ("|" = cursoren):
1) der bliver skrevet (og cursoren stille før "noget"): her er |noget tekst
2) der klikkes på smiley
3) smilien indsættes EFTER det sidste "t" i "tekst"
Avatar billede vels Nybegynder
02. marts 2004 - 20:40 #20
med frames :)
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:40 #21
firefox er nemlig en ordentlig browser. kan varmt anbefales.
Avatar billede vels Nybegynder
02. marts 2004 - 20:41 #22
det er en online LaTeX editor jeg er ved at lave...
Avatar billede vels Nybegynder
02. marts 2004 - 20:42 #23
det der smile noget.. det er fra noget andet jeg har lånt... det er til at indsætte billede kode, og matematiske funktioner...

lidt om latex hvis i ik lige ved hvad det er:
http://www.but.auc.dk/EDB/dokumentation/latex/
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:43 #24
ved skam godt hvad det er. men hvis du er til latex, så er du helt sikker også til firefox. se at få skiftet ie ud.

=)
Avatar billede vels Nybegynder
02. marts 2004 - 20:44 #25
bare rolig du, min mail client er Mozilla.... så jeg tror jeg vil kigge på Firefox.... var det ik den der hed noget med fugel før?
Avatar billede 3xm Nybegynder
02. marts 2004 - 20:48 #26
Jo, den hed Firebird før og den har heddet meget gennem tiden. Men nu hedder den Firefox - og bliver ved med det.

=)
Avatar billede vels Nybegynder
23. februar 2012 - 18:34 #27
>>3xm
smider du svar
Avatar billede 3xm Nybegynder
24. februar 2012 - 09:04 #28
haha. efter alle de år? det kan jeg da godt :)
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