読者です 読者をやめる 読者になる 読者になる

TinyMCEのmceSetContentコマンドについて

HTML上でリッチなエディタを提供するjavascriptライブラリTinyMCE
サンプル
http://tinymce.moxiecode.com/example_full.php?example=true


エディタインスタンスに対してAPIが用意されているので、javascript上でさまざまな処理を動的に行うことができる。
そのAPIの中の一つexecCommandを使うと用意されているコマンドを使ってエディタを操作できる。

var html = "<div>hogehoge</div>";
tinyMCE.execCommand('mceSetContent', false, html);

とやったりするとエディタ内にHTMLなどのコンテンツを挿入することができたり。



しかしyoutubeのFLV動画を操作しようとyoutubeの貼り付けタグを挿入してみたところ
src属性がなぜかmce_tsrc属性に変わっちゃってる・・・


ソース追ったところ、2077行目の

		if (tinyMCE.isGecko) {
			if (m == 1) {
				h = h.replace(/\ssrc=/gi, " mce_tsrc=");
				h = h.replace(/\shref=/gi, " mce_thref=");

で書き換えられてた。
メソッド名がfixGeckoBaseHREFBugになってたからなんかのバグフィックスなんだろう。


恐らくエディタを使ってデータを送信するときにはtinyMCE.getContent()でエディタインスタンスから本文コンテンツを取得するので、その時にに再度srcに書き換えてるんだろうな。
(推測だけど)



ってかプラグインでmediaってのがあった。。。。
これ使って簡単に動画貼付けできるし。ort