1

Zend Framework バックエンドでテキストを編集/マークアップするために tinyMCE を使用しています。生成された HTML を Flash AS3 アプリケーションで使用したいと考えています。問題は、Flash が<span><em>タグ、<strong>タグなどの属性をサポートしていないことです。ここには 2 つの可能性があると思います。

  • tinyMCE の設定を変更して、スパンの代わりにフォント タグを使用するようにし<b>ます<strong>
  • Flash のすべての HTML タグを正規表現に置き換えます。

どんな助けでも大歓迎です。

これは tinyMCE によって生成された元の html です。

<span style="color:#FF0000; font-size:24;">text, and <strong>bold text</strong></span>

そして、これは私がフラッシュに必要なものです:

<font size='24' color='#FF0000'>text and <b>bold text</b></font> 
4

2 に答える 2

1

返信ありがとうございますが、私は非常に簡単な解決策を見つけました。TinyMCEには、 legacyoutputというプラグインが付属しています。これにより、Flashで読み取り可能な古いHTMLコードが生成されます。

これを使用する方法:

  • tinyMCEinit関数でプラグインにlegacyoutputを追加します
  • tinyMCE init関数に次のルールを追加します: extended_valid_elements:'b、i'

これで、HTMLは次のようになります。

<font size="12" style="color:#FF0000"><b>text in bold 14pt red</b></font>

Flashで読み取り可能にするには、style属性をcolor属性に置き換える必要があります。これを修正するには、legacyoutput jsファイル(tinymce / plugins /横出力/editor_plugin.jsおよびeditor_plugin_src.js)のルールを編集します。

「forecolor」を探し、コードを次のように変更します。

forecolor : {inline : 'font', attributes : {color : '%value'}},

これで、1回のハックを使用してこれをFlashに出力できます。

于 2010-08-30T15:15:38.093 に答える
0

最初に以下を構成に追加します (これにより、太字の強い代わりに b タグを使用することになります):

tinyMCE.init({
    ...
    formats : {
          ...
      bold : {inline : 'b'},
          ...
});

スパンを置き換える機能を備えた独自のプラグインを作成する必要があります (jQuery を使用)。関連するコードは次のようになります。

iframe_id = (ed.id == 'content_ifr') ? ed.id : ed.id+'_ifr';
spans = document.getElementById(iframe_id).document.getElementsByTagName('span');

for (i=0;i<spans.length;i++){

  with(document.getElementById(iframe_id).contentWindow){

    var font=document.createElement("font");
    font.innerHTML = span[i].innerHTML;
    font.size = $(span[i]).attr('font-size');
    font.color = $(span[i]).attr('color');
    span[i].parentNode.replaceChild(font, span[i]);
  }
}
于 2010-08-17T08:24:42.470 に答える