- PR -

document.execCommandについて

1
投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-10-15 01:36
またまた、失礼します。

現在、nicEditのリッチテキストエディタを利用していますが、HTMLソースへの変換部を修正しています。

その部分はdocument.execCommandを使っているようなのですが、フォントサイズの変更をした時、<font size=5>が、標準となってしまう為、この文字列があった場合は、<span style="font-size: 5px;">のように置換するようにしました。

このdocument.execCommandはtextareaへのタグが反映されたレイアウト&上記のようなHTMLソースの出力を同時に行ってくれているようなのですが、前者のレイアウト反映は正しく行われるのですが、ソースの出力が標準仕様(<font size=X>)で無い為か、正しく反映されません。

例としては
<span style="font-size:10px">aaaa</span>で、aaaa全てのフォントサイズを23pxに変更した場合、<span style="font-size:23px"><span style="font-size:10px">aaaa</span></span>と出力されてしまいます。

本来は
<span style="font-size:23px">aaaa</span>と出力されて欲しいのですが。

もし、<font size=X>のままの仕様ですと全てちゃんと出力されるのは確認したのですが・・。
<font size=5>aaaa</font>→<font size=7>aaaa</font>(5を7に変えた場合)


nicCommand:function(B,A){
 // @ここでHTML書式で出力している
 document.execCommand(B,false,A);
 // font sizeの書式があったら置換
 this.chkFontSize(this.elm.innerHTML,B,A);
}

のように、Javascriptで独自に置換してます。(置換ソース部は省きますが、正常に置換しています)

実現したい事は、fontのsize指定ではなく、pxやpt単位でのHTML出力を実現したいのですが、いかがでしょうか?(document.execCommandは他機能ボタンとの兼ね合いもあり、なるべく残したいと思ってます)
お分かりになる方、いましたら、よろしくお願いします。
WinXP-SP2 & FF3で確認してますが、クロスブラウザに対応させたく思っています。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-10-15 01:37 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-10-15 01:40 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-10-15 01:44 ]
ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-10-16 01:26
全然関係ないけど、chrome も execCommand サポートしてるね。

http://www.tohoho-web.com/wwwxx016.htm

http://votetype.xrea.jp/memo2/memo/


HTML出力は最後にすればいいのでは?

置換の正規表現がいまいちってこと?

ぴあちゃん
ぬし
会議室デビュー日: 2008/02/07
投稿数: 287
投稿日時: 2008-10-18 01:14
http://www.gac.jp/article/index.php?stats=question&id=22649&command=msg

助け合い。

似たような質問、か?
未記入
大ベテラン
会議室デビュー日: 2008/07/11
投稿数: 182
投稿日時: 2008-10-19 21:56
ぴあちゃんさん、ありがとうございます。

execCommandを介するとブラウザによって、出力されるHTMLが違うようです。
例えば、フォントの種類を選択・変更をしたら、
(※すいません、各どのブラウザかは忘れてしまいました。)
<font face="...
<span style="font-family: ....
など、フォントサイズでもApple(確かSafariと..)のフォーマットらしき書式となりました。

となり、ある一定のフォーマットで固めたい場合は、やはり独自に出力するしかないようです。

http://www.gac.jp/article/index.php?stats=question&category=9&id=22653&command=msg
同じサイトで私も同じ方法を模索しており、選択行の取得で止まってます。

selectionオブジェクトには開始行の取得は無いんですかね・・。
ぼくも知りたいです。

>別スレにします。execCommandとは直接関係ないですね。

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-10-19 21:58 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2008-10-19 22:02 ]
1

スキルアップ/キャリアアップ(JOB@IT)