週刊ダークキングダム内部掲示板
内部掲示板の書き込みと編集画面におけるタグ挿入JSのメモ。
以下アルゴリズム。
○テキストエリアで、キーを放す(onKeyUp)、クリックする(onClick)、選択する(onSelect)のどれかをやったときにその場所をグローバル変数に保存するようにする。
○あとはボタンを押されたときに、その位置にタグを挿入。
選択されていれば、選択されていたところの周りにタグが挿入されるようにする。
○このとき、保存したポジションでifかけておかないと、HTMLの頭にタグが挿入されていってしまうので注意。
プログラムのメモ。
/* 入力、クリック、選択されたときに動かす関数 */
function cursormove() {
// 実行
try {
// createTextRangeが使えるならば
if (document.getElementById('content').createTextRange) {
// currentPosに現在の選択されている位置のコピー(duplicate())を保存
document.getElementById('content').currentPos = document.selection.createRange().duplicate();
}
// 正常終了
return true;
// エラーで動かなかったら
} catch(e) { }
}
/* タグを入力する関数 */
/* 第一引数:開始タグ、 第二引数:終端タグ */
function taginput(linp, rinp) {
// createTextRangeが使用可能で、currentPosに値が入っているならば
if (document.getElementById('content').createTextRange && document.getElementById('content').currentPos) {
// 取得した位置を使いやすいように変数に格納
var currentPos = document.getElementById('content').currentPos;
// 選択された文字(または現在地)のテキストを引数二つ(開始タグ、終端タグ)ではさんで代入
currentPos.text = linp + currentPos.text + rinp;
// createTextRangeが使用不可能または、currentPosに値が入っていないならば
} else {
// idがcontentのフィールドの終端に開始タグと終端タグを付加して終了
document.getElementById('content').value = document.getElementById('content').value + linp + rinp;
}
}
以下アルゴリズム。
○テキストエリアで、キーを放す(onKeyUp)、クリックする(onClick)、選択する(onSelect)のどれかをやったときにその場所をグローバル変数に保存するようにする。
○あとはボタンを押されたときに、その位置にタグを挿入。
選択されていれば、選択されていたところの周りにタグが挿入されるようにする。
○このとき、保存したポジションでifかけておかないと、HTMLの頭にタグが挿入されていってしまうので注意。
プログラムのメモ。
/* 入力、クリック、選択されたときに動かす関数 */
function cursormove() {
// 実行
try {
// createTextRangeが使えるならば
if (document.getElementById('content').createTextRange) {
// currentPosに現在の選択されている位置のコピー(duplicate())を保存
document.getElementById('content').currentPos = document.selection.createRange().duplicate();
}
// 正常終了
return true;
// エラーで動かなかったら
} catch(e) { }
}
/* タグを入力する関数 */
/* 第一引数:開始タグ、 第二引数:終端タグ */
function taginput(linp, rinp) {
// createTextRangeが使用可能で、currentPosに値が入っているならば
if (document.getElementById('content').createTextRange && document.getElementById('content').currentPos) {
// 取得した位置を使いやすいように変数に格納
var currentPos = document.getElementById('content').currentPos;
// 選択された文字(または現在地)のテキストを引数二つ(開始タグ、終端タグ)ではさんで代入
currentPos.text = linp + currentPos.text + rinp;
// createTextRangeが使用不可能または、currentPosに値が入っていないならば
} else {
// idがcontentのフィールドの終端に開始タグと終端タグを付加して終了
document.getElementById('content').value = document.getElementById('content').value + linp + rinp;
}
}
|Dark Kingdom|みと|2007/2/27(Tue) 15:59:57|コメント(0)|トラックバック(0)|
この記事へのトラックバック
この記事のトラックバックURL
http://orange.grandaria.com/room/weblog.cgi?mode=trackback&id=5
コメント一覧
コメントする