ブログ カレンダー

« « 2024 4月 » »
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4

カテゴリ一覧

アーカイブ

最新のエントリ

最新のコメント

最新のトラックバック

趣味のブログ - IE 以外のブラウザでイメージマネージャの img コードをキャレット位置に挿入

IE 以外のブラウザでイメージマネージャの img コードをキャレット位置に挿入

カテゴリ : 
XOOPS
執筆 : 
OhYeah! 2010.09.06 03:20
 「IE 以外のブラウザで BBcode 及びスマイリーをキャレット位置に挿入」で、Firefox, Chrome, Opera でも BBcode とスマイリーをテキストカーソル位置に挿入できるようになりました。しかし、最近イメージマネージャを使い始めて気がついたんですが、イメージマネージャで画像を選択した場合は、IE 以外のブラウザでは img コードが文末にしか挿入されないんですね
 というわけで、今度は Firefox, Chrome, Opera でイメージマネージャの img コードをテキストカーソル位置に挿入できるようにしてみました。
 XOOPS の標準イメージマネージャを使用している場合は、ALTSYS のテンプレート管理で、「互換モジュール」の「legacy_image_list.html」の DB-default を編集するのが最も簡単です。function appendCode() 全体を下記のように修正すれば OK です。
 オリジナルと同様に、画像選択後イメージマネージャのウィンドウを閉じたいときは、window.close(); の行の // を削除します。
 ALTSYS を使用していない場合は、{XOOPS_ROOT_PATH}/modules/legacy/templates/lagacy_image_list.html を直接編集して、互換モジュールのアップデートを行ってください。

 IMGTag D3 のイメージマネージャ統合を使用している場合は、d3imgtag のテンプレート管理で d3imgtag_imagemanager.html の DB-defalut で function appendCode() 全体を下記のように修正します。

function appendCode(addCode) {
    var domobj = window.opener.xoopsGetElementById('<{$target}>');
    if (document.selection) { // for IE
        domobj.focus();
        obj = window.opener.document.selection.createRange();
        obj.text = addCode;
        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 + addCode.length;
        domobj.value = domobj.value.substring(0, startPos) + addCode
                       + 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 + addCode;
    }
    //window.close();
    return;
}

トラックバック

トラックバックpingアドレス http://www.o-ya.net/modules/d3blog/tb.php/32

コメント一覧