/ Forside/ Teknologi / Udvikling / Java Scripts / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
selection i IE
Fra : zlug
Vist : 677 gange
90 point
Dato : 10-04-06 20:10

okay... jeg vil med det samme indrømme at jeg er lidt begynder til javascript... men efter at have læst en del fik jeg sat denne kode sammen:

function skriv(){
   startStr = document.getElementById("tekstform").indhold.value.substring(0, document.getElementById("tekstform").indhold.selectionStart);
   slutStr = document.getElementById("tekstform").indhold.value.substring(document.getElementById("tekstform").indhold.selectionEnd);
   document.getElementById("tekstform").indhold.value=startStr+"[angreb]"+slutStr;
   document.getElementById("tekstform").indhold.focus();
   document.getElementById("tekstform").indhold.setSelectionRange(startStr.length + 8, startStr.length + 8);
}

coolt den fungerede fint... når man trykkede på en knap indsætter den "[angreb]" der hvor makøren er og placere makøren lige efter... men sandheden er at da jeg lige skulle vise det for en der stadig brugte explore virkede det ikke... jeg var simpelt hen for glad til at gide tæste det i explore...

nå men nu har jeg altså testet det i explore og det lader ikke til at nogen af Selection funksionerne fungere...

kan det her bare ikke lade sig gøre i explore??? det nægter jeg at tro på.. ganske vist er explore ikke specielt godt men så dårligt kan det heller ikke være... så hvis nogen kender en måde at få det til at virke i IE på så sig endelig frem

 
 
Kommentar
Fra : molokyle


Dato : 10-04-06 21:10

Jeg vil mene (..uden at lægge hovedet på blokken) at problemet opstår i forbindelse med kaldet til focus(): i IE:

Citat
For example, manually firing a focus event does not cause the element to receive focus (you must use its focus method for that), manually firing a submit event does not submit a form (use the submit method), and manually firing a key event does not cause that letter to appear in a focused text input, etc. In the case of UI events, this is important for security reasons, as it prevents scripts from simulating user actions that interact with the browser itself.


http://www.howtocreate.co.uk/tutorials/javascript/domevents

Citat
Update, June 2005: I've finally found a work-around for the fact that Internet Explorer doesn't (always/ever?) set the focus correctly. It turns out to be a timing bug in IE. I've inserted a 0.1 second delay in the focus setting and now it works correctly.


http://www.xs4all.nl/~sbpoley/webmatters/formval.html

</MOLOKYLE>

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 10-04-06 21:14

Ps. Har du prøvet i den kommende IE7 ...der er lige på trapperne?

http://www.microsoft.com/windows/IE/ie7/default.mspx

Vælg : [ Get Beta 2 Preview ] ..i øverste højre hjørne af siden.

VIGTIGT : Vær forberedt på du ikke kan bibeholde IE6 (...uden mange 'krumspring' )

</MOLOKYLE>

Kommentar
Fra : zlug


Dato : 10-04-06 21:21

jeg undgår helst at bruge IE hvis jeg kan...

men jeg må detsvager se i øjnene at de fleste bruger det... nå whatever... jeg vil lige kigge lidt på de links

Kommentar
Fra : zlug


Dato : 10-04-06 21:24

btw.. jeg har prøvet at tæste det igennem...    selection funksionerne giver bare ikke foget resultat... gør jeg joget forkert eller kan IE ikke bruge dem?

Kommentar
Fra : molokyle


Dato : 10-04-06 21:42

Nøeh... det 'burde' virke :

1.) http://www.w3schools.com/htmldom/dom_obj_select.asp
2.) http://www.w3schools.com/htmldom/prop_select_selectedindex.asp

Hvordan ser din (X-)HTML <form> ... <select...> ... </select> ..</form> konstruktion ud ?

Jeg kører selv IE7 Beta 2 og kan derfor ik' teste i IE5+ (>IE6) !

</MOLOKYLE>





Kommentar
Fra : molokyle


Dato : 10-04-06 21:53

Ps. Du kender vel HTML konstriktionen:

Kode
<selected name="NAVN" multibele size="ANTAL">
<option value="VÆRDI" selected>TEKST</option>
.
.
</selected>


..hvor <option ...bla bla ... selected> angiver at punktet er valgt på forhånd og afmærket?

</MOLOKYLE>




Kommentar
Fra : molokyle


Dato : 10-04-06 21:55

multibele ??? multible !

</MOLOKYLE>

Kommentar
Fra : molokyle


Dato : 10-04-06 22:01

Shit... Pøver igen :

Kode
<select name="NAVN" multible size="ANTAL">
<option value="VÆRDI" selected>TEKST</option>
.
.
</select>


Indsæt selv NAVN, ANTAL, VÆRDI og TEKST.

Jeg skal ærligt indrømme; jeg bliver i tvivl om, jeg har forstået dit spørgsmål korrekt?

Hvad er det præcist du vil have din <select> skal gøre? Kan du lægge en URL til et eksempel?

</MOLOKYLE>

Kommentar
Fra : zlug


Dato : 14-04-06 11:11

du har misforstået det... tror bare jeg giver dig hele min kode istedet...
Kode
<script language="JavaScript" type="text/javascript">
function valider(){
   max_lengde = 40;
   test_ord = document.getElementById('tekstform').indhold.value;
   if(test_ord.indexOf("[angreb]") != test_ord.lastIndexOf("[angreb]")){
      alert('hey.. du må kun andgribe EN gang');
   exit;
   }
   if(test_ord.length == 0){
      alert('HEY... du skal skrive NOGET');
      exit;
   }
   len_ord = 0;
   andgreb_ord = 0;
   test_ord = test_ord.split(' ');
   for (i in test_ord) {
      if (test_ord[i].length > max_lengde) {
         alert('et af dine ord er lenger end de tilladte 40 tegn');
         exit;
      }
      if (test_ord[i].length > 0 && len_ord == 0){
         len_ord = 1;
      }

   }
   if(len_ord == 0){
      alert('HEY... du skal skrive NOGET');
      exit;
   }
   else{
      document.getElementById('tekstform').submit();
   }
}
function skriv(){
   startStr = document.getElementById("tekstform").indhold.value.substring(0, document.getElementById("tekstform").indhold.selectionStart);
   slutStr = document.getElementById("tekstform").indhold.value.substring(document.getElementById("tekstform").indhold.selectionEnd);
   document.getElementById("tekstform").indhold.value=startStr+"[angreb]"+slutStr;
   document.getElementById("tekstform").indhold.focus();
   document.getElementById("tekstform").indhold.setSelectionRange(startStr.length + 8, startStr.length + 8);
}
</script>

<div align="center"><img src="../billeder/bannere/thechaosrift.gif"><br />
<?php
   $omraader = mysql_query("SELECT * FROM omraader WHERE id='1'");
   $omraade = mysql_fetch_array($omraader);

   print "$omraade[beskrivelse]";
   print "<br /><table cellpadding=\"0\" cellspacing=\"0\">";

   include("tid.php");
   $i = 1;
   $indl = mysql_query("SELECT * FROM indlaeg WHERE master='1' ORDER BY id ASC");
   while($ind = mysql_fetch_array($indl)){
   print "   <tr>
         <td class=\"indlaeg_top_left\">
            #$i&nbsp;&nbsp;$ind[forfatter]
         </td>
         <td class=\"indlaeg_top_right\"><span title=\"" . date("H:i:s - d/m/Y", $ind[tid]) . "\">" . tid($ind[tid]) . "</span>
         </td>
      </tr>
      <tr>
         <td class=\"indlaeg_bund\" colspan=\"2\">
            $ind[tekst]
         </td>
      </tr>
      <tr>
         <td class=\"mellemrum\" colspan=\"2\">
         </td>
      </tr>";
   $i++;
   }
   print "   </table><br /><br />
      <form action=\"handlinger.php?handling=nytindlaeg\" method=\"post\" id=\"tekstform\">
      <textarea name=\"indhold\" id=\"indhold\" cols=\"60\" rows=\"10\"></textarea><br />
      <input type=\"hidden\" name=\"omraade\" value=\"1\" />
      <input type=\"button\" value=\"send\" onClick=\"valider();\" />
      <input type=\"button\" name=\"knap\" value=\"angreb\" onclick=\"skriv()\" />
      </form>";
?></div>


(det er en include fil hvilket retfærdigøre de manglende tags)

Kommentar
Fra : molokyle


Dato : 14-04-06 11:27

Tilsyneladene understøtter IE ikke selectionStart objektet !!!

http://www.alexking.org/index.php?content=software/javascript/content.php

</MOLOKYLE>

Kommentar
Fra : zlug


Dato : 14-04-06 11:39

men der er ikke nogen alternativ måde at få det til at virke i ie på?

Accepteret svar
Fra : molokyle

Modtaget 90 point
Dato : 14-04-06 11:54

Prøv lige at læse eksemplet i det angivne link igennem igen

Første del af koden er for IE den efterfølgende for Mozilla browsere:

Kode
function insertAtCursor(myField, myValue) {
//IE support
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
} else {
myField.value += myValue;
}
}

// calling the function

insertAtCursor(document.formName.fieldName, 'this value');


Dette bør du kunne arbejde videre med selv.

På tysk? http://aktuell.de.selfhtml.org/tippstricks/javascript/bbcode/

</MOLOKYLE>



Kommentar
Fra : zlug


Dato : 14-04-06 12:01

hæ hæ.. ja men den gør ikke det jeg skal bruge... det vigtige er at scriptet selv kan regne ud hvor makeringen er og indsætte ordet der

Godkendelse af svar
Fra : zlug


Dato : 18-04-06 13:17

woooops... det ku sku det jeg skulle bruge.....

takker

Kommentar
Fra : molokyle


Dato : 18-04-06 18:49



Happy coding...

</MOLOKYLE>

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste