English - ??中文版
obsidian eyez - MovableType

その他エントリー
PC-9821Xs - Intro - Profile - Link - Contact Me - FAQ - 青森テレビの放送が約一時間にわたって中断 - ADSLの調子が悪い - Life of the party!! - Mozillaで 引用ボタン QTF - obsidian eyez

2004年01月02日

 

Mozillaでエントリー画面のボタン表示

さっき書いたものを間違って消してしまった やれやれ
なんで適当に書き直し
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で日本語がうまく囲めないです。

Web posted at: 18:36 JST
検索などで直接このページに来られた方は、
ぜひメインのobsidian eyezも覗いてくださいな。
[BACK] - [TOP] - [HOME]