OSDN Git Service
(root)
/
webchat
/
WebChat.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2ed9825
)
文字列を選択した状態で装飾した場合、前後にBBCODEを挿入するようにした
author
konekoneko
<jbh03215@hotmail.co.jp>
Tue, 2 Apr 2013 06:50:26 +0000
(15:50 +0900)
committer
konekoneko
<jbh03215@hotmail.co.jp>
Tue, 2 Apr 2013 06:50:26 +0000
(15:50 +0900)
public/scripts/chatclient.js
patch
|
blob
|
history
diff --git
a/public/scripts/chatclient.js
b/public/scripts/chatclient.js
index
100456c
..
ca5babf
100644
(file)
--- a/
public/scripts/chatclient.js
+++ b/
public/scripts/chatclient.js
@@
-257,42
+257,56
@@
function clickNameEventListener(e)
\r
function AddBold()
\r
{
\r
\r
function AddBold()
\r
{
\r
- InsertAtCaret(document.chat_form.message,"[b][/b]");
\r
+ var text = GetSelection(document.chat_form.message);
\r
+ ReplaceSelection(document.chat_form.message,sprintf("[b]%s[/b]",text));
\r
}
\r
\r
function AddItalic()
\r
{
\r
}
\r
\r
function AddItalic()
\r
{
\r
- InsertAtCaret(document.chat_form.message,"[i][/i]");
\r
+ var text = GetSelection(document.chat_form.message);
\r
+ ReplaceSelection(document.chat_form.message,sprintf("[i]%s[/i]",text));
\r
}
\r
\r
function AddStrike()
\r
{
\r
}
\r
\r
function AddStrike()
\r
{
\r
- InsertAtCaret(document.chat_form.message,"[s][/s]");
\r
+ var text = GetSelection(document.chat_form.message);
\r
+ ReplaceSelection(document.chat_form.message,sprintf("[s]%s[/s]",text));
\r
}
\r
\r
function AddFontSize(size)
\r
{
\r
}
\r
\r
function AddFontSize(size)
\r
{
\r
- InsertAtCaret(document.chat_form.message,sprintf("[size=%f][/size]",size));
\r
+ var text = GetSelection(document.chat_form.message);
\r
+ ReplaceSelection(document.chat_form.message,sprintf("[size=%f]%s[/size]",size,text));
\r
}
\r
\r
}
\r
\r
-function InsertAtCaret(element, text) {
\r
+function GetSelection(element)
\r
+{
\r
if (document.selection) {
\r
element.focus();
\r
var sel = document.selection.createRange();
\r
if (document.selection) {
\r
element.focus();
\r
var sel = document.selection.createRange();
\r
- sel.text = text;
\r
- element.focus();
\r
+ return sel.text;
\r
} else if (element.selectionStart || element.selectionStart === 0) {
\r
var startPos = element.selectionStart;
\r
var endPos = element.selectionEnd;
\r
var scrollTop = element.scrollTop;
\r
} else if (element.selectionStart || element.selectionStart === 0) {
\r
var startPos = element.selectionStart;
\r
var endPos = element.selectionEnd;
\r
var scrollTop = element.scrollTop;
\r
- element.value = element.value.substring(0, startPos) + text + element.value.substring(endPos, element.value.length);
\r
- element.focus();
\r
- element.selectionStart = startPos + text.length;
\r
- element.selectionEnd = startPos + text.length;
\r
- element.scrollTop = scrollTop;
\r
- } else {
\r
- element.value += text;
\r
+ return element.value.substring(startPos,endPos);
\r
+ }else{
\r
+ return "";
\r
+ }
\r
+}
\r
+
\r
+function ReplaceSelection(element,text)
\r
+{
\r
+ if (document.selection) {
\r
element.focus();
\r
element.focus();
\r
+ var sel = document.selection.createRange();
\r
+ sel.text = text;
\r
+ } else if (element.selectionStart || element.selectionStart === 0) {
\r
+ var startPos = element.selectionStart;
\r
+ var endPos = element.selectionEnd;
\r
+ element.value = element.value.substring(0, startPos) + text + element.value.substring(endPos, element.value.length);
\r
+ } else{
\r
+ element.value = text;
\r
}
\r
}
\r
\r
}
\r
}
\r
\r