|
| selection i IE Fra : zlug | Vist : 750 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 |
| | |
| 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 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 $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 |
| | |
| 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
| |
| 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.
| |
|
|