LOGIN ID Password Auto Login Register Now! Lost Password?
XUGJ Forum

Firefox, Chrome, Opera で BBcode やスマイリーをキャレット位置に挿入

投稿ツリー


このトピックの投稿一覧へ

OhYeah

報告 Firefox, Chrome, Opera で BBcode やスマイリーをキャレット位置に挿入

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2010/8/20 19:48
OhYeah  2nd Class   投稿数: 8
このエディタもそうですが、XOOPS で BBcode やスマイリーの入力支援を使った場合、IE 以外のブラウザでは文末に挿入されてしまいます。が、include/xoops.js の xoopsInsertText 関数を下記のように書き換えると、Firefox, Chrome, Opera でもキャレット位置に BBcode やスマイリーが挿入されるようになります。

IE6/7/8, Firefox 3, Chrome 5, Opera 10 で動作確認してありますが、Sleipnir や Safari で動作するかどうかは不明です(Safari は WebKit なのでいけそうですが)。私のサイトはこの修正をしてありますので、他のブラウザで動作確認していただけるとありがたいです。
http://www.o-ya.net/modules/d3diary/index.php?page=detail&bid=12&req_...

function xoopsInsertText(domobj, text)
{
    if (document.selection) { //for IE
        domobj.focus();
        obj = document.selection.createRange();
        obj.text = text;
        obj.select(); // 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); // Move caret to inserted text end
    } else { // for Other Browser
        domobj.value = domobj.value + text;
    }
}
投票数:1 平均点:10.00

  条件検索へ


Back to Page Top
MainMenu
Manuals
Search
XOOPS Official & Dev.
XOOPS Communities