Noël Café : Blog

Noëlの公開備忘録とひとりごと。コメント・トラックバックご自由に

MozillaでもOK

編集画面のBoldボタンなどがMozillaで使えなかったので、
使えるようにしてみました。


Version 3.x対応の話です。
2.6とかは、同じような事が書いてあるところを探せば
できると思います。


mtフォルダーのtmpl/cms/edit_entry.tmplをエディタで編集。
これ↓を探して、

write(‘<a title="<MT_TRANS phrase="Bold">" href="#" onclick="return formatStr(document.entry_form.text, \’strong\’)"><img src="<TMPL_VAR NAME=STATIC_URI>images/bold-button.gif" alt="<MT_TRANS phrase="Bold">" width="24" height="18" border="0" /></a>’);

write('<a title="<MT_TRANS phrase="Bold">" href="javascript:formatStr(document.entry_form.text, \'strong\')"><img src="<TMPL_VAR NAME=STATIC_URI>images/bold-button.gif" alt="<MT_TRANS phrase="Bold">" width="24" height="18" border="0" /></a>');

という形にする。
同様の法則で、
formatStr, insertLink, Decode, insertSomething, insertAmazon
を呼び出すリンク全部。
(I, U, Blockquote, hr, e-mail, amazon, decode, 絵文字ですかね・・・。)
Decode, insertSomething, insertAmazonについては、
HRボタンをつくる。
Decodeボタンをつける。
Amazon Button
及びこれらの続きの記事参考に。
これで作ったものなら大丈夫。
tmpl/cms/bm_entry.tmplも同様に変えます。
(ブックマークレット使う人は必要ですね。)


次に、mtフォルダのmt.jsの変更。
関数、formatStr, insertLink, Decode, insertSomething, insertAmazonの中にある、
return false;, if (!canFormat) return;を削除。
もしくはコメントアウト(行頭に//)
InsertSomethingはコメント欄で絵文字。で考えた、
関数を加えて、ブラウザによって動きを変える。
ここで、Mozilla 1.0で色々試していたら、
カーソルのあるところに文字が入る方法を見つけた!!ので
それも導入!!
(コメント欄でもできるようにしようっと。
きつねさんでもOK 2005.1.16追記)
と言うわけで、insertSomethingを↓とすり替える。

function insertSomething (e, v) {
    if(navigator.appName.indexOf("Microsoft") > -1){ // If IE
        e.focus();
        if (!document.selection) return;
        var range = document.selection.createRange();
        range.text = v;
        e.focus();
//        return false;
    }else{ // If other browser
        if (e.createTextRange && e.caretPos) {
            var caretPos = e.caretPos;
            caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? v + ' ' : v;
            e.focus();
        } else {
            var str = getSelection(e);
            setSelection(e, v);
            e.focus();
        }
    }
}

↑2005.1.16 少し手直ししました。


多分、これだけで動くと思います。
Mozilla Firefox 1.0で動きました。
もちろんIE 5で動きます。
でもNetscape 7.0では駄目でした。
JavaScriptって好きになれないな。これだから。
きつねさんで、ボタンを押すと、
textareaがはじめに戻ってしまいます。
Focusを元の場所と同じようにできないのかな。
(IEはデフォルトでそうなるんだよね。便利)

Leave a Reply

*


CAPTCHA



Trackback URL