さっき書いたものを間違って消してしまった やれやれ
なんで適当に書き直し
Mozillaでエントリー画面のタグ追加用のボタンを表示させる方法です。
edit_entry.tmplの400行目あたりのスクリプトでボタンを書いてる後に下記を追加
Rich Text Editing in Movable Type Blogzilla
<TMPL_IF NAME=AGENT_MOZILLA>
<table border="0" cellspacing="0" cellpadding="0" width="107">
<tr>
<td width="24"><a href="javascript:wrapSelection('b')">
<img src="<TMPL_VAR NAME=STATIC_URI>images/bold-button.gif" alt="bold" width="24" height="18" border="0"></a></td>
<td width="24"><a href="javascript:wrapSelection('i')">
<img src="<TMPL_VAR NAME=STATIC_URI>images/italic-button.gif" alt="italic" width="24" height="18" border="0"></a></td>
<td width="24"><a href="javascript:wrapSelection('u')">
<img src="<TMPL_VAR NAME=STATIC_URI>images/underline-button.gif" alt="underline" width="24" height="18" border="0"></a></td>
<td width="26"><a href="javascript:insertMozLink()">
<img src="<TMPL_VAR NAME=STATIC_URI>images/url-button.gif" alt="link" width="26" height="18" border="0"></a></td>
</tr>
</table>
</TMPL_IF>
同じくedit_entry.tmplのheadタグ内ののスクリプトの部分に下記を追加
Hacking MT kurcula.com
<TMPL_IF NAME=AGENT_MOZILLA>
function getSelectStart(s) {
return s.selectionStart;
}
function getSelectEnd(s) {
return s.selectionEnd;
}
function getTextLength(s) {
return s.textLength;
}
function getMozSelection(s) {
return (s.value).substring(getSelectStart(s), getSelectEnd(s))
}
function setMozSelection(a,z) {
s.selectionStart = a;
s.selectionEnd = z;
}
function wrapSelection(v) {
var s = document.forms['entry_form'].text
var s1 = (s.value).substring(0,getSelectStart(s))
var s2 = (s.value).substring(getSelectEnd(s),getTextLength(s))
s.value = s1 + '<' + v + '>' + getMozSelection(s) + '</' + v + '>' + s2
}
function insertMozLink() {
var s = document.forms['entry_form'].text
var s1 = (s.value).substring(0,getSelectStart(s))
var s2 = (s.value).substring(getSelectEnd(s),getTextLength(s))
var my_link = prompt('Enter URL:', 'http://')
if (my_link != null)
s.value = s1 + '<a href="' + my_link + '">' + getMozSelection(s) + '</a>' + s2
}
</TMPL_IF>
原因はIEしか使えない document.selectionを使っているところがある MacのIEもダメみたい
Mozilla用にdocument.getSelection()を工夫して使う
Safariはwindow.getSelection()とか工夫すればできるんじゃないかと? わからんけど
Bookmarkletを使う場合
Quoted from: MovableTypeで行こう!
Mozillaでもボタンを使いたい!
Bookmarkletを使っている人なら、以下の手順も追加でやってみてくださいまし。
bm_entry.tmplも同様に修正しましょう。
ただし、bm_entry.tmplの場合は、formにname属性がないので、このあたり修正してあげる必要がありました。
具体的には、headタグ中に追加するスクリプト中の
document.forms['entry_form'].text
を
document.forms['bm_entry_form'].text
として、
formタグ中に
name="bm_entry_form"
を追加してみました。
みんなすごいですねぇ 引用ばかりで申し訳ない
RedHat9のMozilla 1.2.1で日本語がうまく囲めないです。