編集画面の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