Cursor focus after formatting text in Firefox [message #33954] |
Thu, 28 September 2006 12:54 |
Ernesto
Messages: 413 Registered: August 2005
Karma: 0
|
Senior Member |
add to buddy list ignore all messages by this user
|
|
If you write a bunch of text, and want to apply text formating, for example the [b][/b] code around, lets say a "headline" then after highlighting the selected text and clicking the button, the cursor will pop down to the end of your text, which if you have a long post and want to make lots of formatting, is very very annoying.
I searched the forum for tweaks or fixes, where you at one point pointed out that you had the "focus problem fixed in CVS" but it didn't apply to this problem. The problem exists on your version of fudforum as well (fudform.org) - The cursor works in IE (you highlight text, format it, and cursor ends up at the end of the word(s) instead of at the end of the entire text.
Ginnunga Gaming
|
|
|
|
|
|
|
|
|
Re: Cursor focus after formatting text in Firefox [message #34800 is a reply to message #33954] |
Sat, 18 November 2006 05:06 |
Ernesto
Messages: 413 Registered: August 2005
Karma: 0
|
Senior Member |
add to buddy list ignore all messages by this user
|
|
Here is a fix (copy pasted from the internet):
Url for the format
<a href="javascript:void(0);" onclick="surroundText('[b]', '[/b]', document.post_form.msg_body); return false;">
function surroundText(text1, text2, textarea)
{
// Can a text range be created?
if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
{
var caretPos = textarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;
caretPos.select();
}
// Mozilla text range wrap.
else if (typeof(textarea.selectionStart) != "undefined")
{
var begin = textarea.value.substr(0, textarea.selectionStart);
var selection = textarea.value.substr(textarea.selectionStart, textarea.selectionEnd - textarea.selectionStart);
var end = textarea.value.substr(textarea.selectionEnd);
var newCursorPos = textarea.selectionStart;
var scrollPos = textarea.scrollTop;
textarea.value = begin + text1 + selection + text2 + end;
if (textarea.setSelectionRange)
{
if (selection.length == 0)
textarea.setSelectionRange(newCursorPos + text1.length, newCursorPos + text1.length);
else
textarea.setSelectionRange(newCursorPos, newCursorPos + text1.length + selection.length + text2.length);
textarea.focus();
}
textarea.scrollTop = scrollPos;
}
// Just put them on the end, then.
else
{
textarea.value += text1 + text2;
textarea.focus(textarea.value.length - 1);
}
}
Ginnunga Gaming
|
|
|
|
|
|