skatanMedlem sedan sep. 200126 inlägg Hittade denna koden här på Webforum.nu men skulle vilja ha så den funkar i alla webbläsare inte bara IE. Finns det någon vänlig själ som kan hjälpa mig med detta??
<script language="JavaScript" type="text/javascript">
function addToSelection(before,after){
if(document.selection.createRange().text){
document.selection.createRange().text=before+document.selection.createRange().text+after;
}
}
</script>
<form method="POST">
<input type="Button" value="<B>" onClick="addToSelection('<b>','</b>');">
<input type="Button" value="<I>" onClick="addToSelection('<i>','</i>');">
<input type="Button" value="<U>" onClick="addToSelection('<u>','</u>');">
<br>
<textarea name="Text1" Rows=8 Cols=70></textarea>
</form>
Peter SMedlem sedan dec. 20025 483 inlägg Det är svårt att få kod att fungera i "alla" webbläsare. Den jag bidrar med nedan bör i alla fall fungera i IE 5-6 samt NS6 och nyare.
function addToSelection(before,after){
var ta = document.forms[0].elements["Text1"];
if (document.selection && document.selection.createRange){
var rng = document.selection.createRange();
if (rng.parentElement() == ta)
rng.text = before + rng.text + after;
}
else if (typeof window.HTMLTextAreaElement != "undefined"){
var sel = ta.value.substring(ta.selectionStart, ta.selectionEnd);
if (sel != "")
ta.value = ta.value.substring(0, ta.selectionStart)
+ before + sel
+ after + ta.value.substring(ta.selectionEnd);
}
}
:)
skatanMedlem sedan sep. 200126 inlägg Tack för du tog dig tid Peter!
Skulle vara bra om lösningen funkar i Safari på Mac också.. de gör inte den där..
Sen att om man inte har någon text markerad att de ändå kommer ut taggar.
Peter SMedlem sedan dec. 20025 483 inlägg Safari har jag ej tillgång till, så jag kan inte testa mig fram. Du skulle kunna undersöka huruvida window.getSelection() ger någonting. Alternativt kan du testa att ta bort if-satsen if (window.HTMLTextAreaElement..., eller ersätta den med if (ta.selectionStart && ta.selectionEnd).
För att kunna lägga till taggar utan att någon text är markerad, kan du låta Gecko-if-satsen se ut så här:
else if (typeof window.HTMLTextAreaElement != "undefined"){
ta.value = ta.value.substring(0, ta.selectionStart)
+ before + ta.value.substring(ta.selectionStart, ta.selectionEnd)
+ after + ta.value.substring(ta.selectionEnd);
}
En IE-lösning har jag ingen metod för för tillfället.
:)