趣味のブログ - IE 以外のブラウザで BBcode 及びスマイリーをキャレット位置に挿入
なんとか、Firefox, Chrome, Opera で、BBcode や顔アイコンをテキストカーソル(キャレット)位置に挿入できるようになりました。
include/xoops.js の xoopsInsertText 関数を下記のように書き換えるだけです。一応、テストプラグラムで IE8, Fx3.6, Chorome 5.0, Opera 10 で動作確認してあります。
この変更で、xoopsSavePosition は無用の長物化しています。コメントアウトしてしまっても大丈夫かも…。
*1 IE では選択テキストを置換するとキャレットが見えなくなるので、処理後はキャレットの再表示が必要です。
*2 Fx, Chrome, Opera では、テキスト挿入後のキャレット位置がブラウザや範囲選択等の条件によって異なるので、キャレットを挿入テキストの直後に移動してやる必要があります。
参考サイト: http://www.tek-tips.com/viewthread.cfm?qid=1226446&page=1
この変更で、xoopsSavePosition は無用の長物化しています。コメントアウトしてしまっても大丈夫かも…。
function xoopsInsertText(domobj, text)
{
if (document.selection) { //for IE
domobj.focus();
obj = document.selection.createRange();
obj.text = text;
obj.select(); // *1 Display caret when text was replaced
} else if (domobj.setSelectionRange) { // for Fx, Chrome, Opera
var startPos = domobj.selectionStart;
var endPos = domobj.selectionEnd;
var lastPos = startPos + text.length;
domobj.value = domobj.value.substring(0, startPos) + text
+ domobj.value.substring(endPos, domobj.value.length);
domobj.setSelectionRange(lastPos, lastPos); // *2 Move caret to inserted text end
} else { // for Other Browser
domobj.value = domobj.value + text;
}
}
*1 IE では選択テキストを置換するとキャレットが見えなくなるので、処理後はキャレットの再表示が必要です。
*2 Fx, Chrome, Opera では、テキスト挿入後のキャレット位置がブラウザや範囲選択等の条件によって異なるので、キャレットを挿入テキストの直後に移動してやる必要があります。
参考サイト: http://www.tek-tips.com/viewthread.cfm?qid=1226446&page=1
トラックバック
トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/10
コメント一覧
OhYeah!
投稿日時 2010.08.21 17:16
naao さん、はじめまして。d3diary は使いやすいし、タグクラウドが標準で装備されているところが気に入りました。でも、d3blog も検討中だったりしますが
。
引用:ところで、このxoops.jsの件は私も前から何とかならないのかなあ、と思っていたのでありがたいです。XCL をインストールしてまだ2週間くらいなんですが、XOOPS 自体は昔からあるので、こんなことがあるとは想定外でした。さらに、その対策パッチがどこにも見つからないってのは、かなり意外でしたね。
まあ、PHP や JavaScript は最悪コードハックで何とかなるのが良いところですが…。
引用:Firefox,Chromeあたりしか使いませんが、何かあれば報告させていただきますね。ぜひ、よろしくお願いします。

引用:ところで、このxoops.jsの件は私も前から何とかならないのかなあ、と思っていたのでありがたいです。XCL をインストールしてまだ2週間くらいなんですが、XOOPS 自体は昔からあるので、こんなことがあるとは想定外でした。さらに、その対策パッチがどこにも見つからないってのは、かなり意外でしたね。
まあ、PHP や JavaScript は最悪コードハックで何とかなるのが良いところですが…。
引用:Firefox,Chromeあたりしか使いませんが、何かあれば報告させていただきますね。ぜひ、よろしくお願いします。
naao
投稿日時 2010.08.20 23:53 | 最終変更
OhYeah!さん、こんにちは。
XUGJから来て登録しました、naaoです。
(d3diaryを使っていただきありがとうございます。)
ところで、このxoops.jsの件は私も前から何とかならないのかなあ、と思っていたのでありがたいです。 Firefox,Chromeあたりしか使いませんが、何かあれば報告させていただきますね。
では。
XUGJから来て登録しました、naaoです。
(d3diaryを使っていただきありがとうございます。)
ところで、このxoops.jsの件は私も前から何とかならないのかなあ、と思っていたのでありがたいです。 Firefox,Chromeあたりしか使いませんが、何かあれば報告させていただきますね。
では。
OhYeah!
投稿日時 2010.08.20 18:33 | 最終変更
このサイトで、IE6/7 で動作確認してみたところ、いずれも問題なく使用できました。
xoopsInsertText, xoopsSavePosition のコードは、ターゲットが IE4/5/5.5 あたりだったんですかねえ?
xoopsInsertText, xoopsSavePosition のコードは、ターゲットが IE4/5/5.5 あたりだったんですかねえ?
3件表示
(全3件)
すべてのコメント一覧へ