tinyMCE 转 AS3 htmlText

发布于 2024-09-14 12:36:23 字数 718 浏览 6 评论 0原文

我正在使用 tinyMCE 在 Zend Framework 后端编辑/标记文本。 我想在 Flash AS3 应用程序中使用生成的 HTML。 问题是 Flash 不支持 标记、 标记中的属性ETC。 我想这里有两种可能性:

  • 更改tinyMCE配置,使其使用字体标签而不是span,而不是,...
  • 使用正则表达式替换 Flash 中的所有 HTML 标签。

欢迎任何帮助。

这是tinyMCE生成的原始html:

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

这就是我在Flash中需要的:

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

I'm using tinyMCE to edit/markup text in a Zend Framework backend.
I'd like to use the generated HTML in a Flash AS3 Application.
The problem is that Flash doesn't support attributes in <span>'s, <em> tags, <strong> tags etc.
I guess there are two possibilities here:

  • change the tinyMCE config so it uses font-tags instead of span's, <b> instead of <strong>,...
  • Replace all the HTML-tags in Flash with Regex.

Any help would be welcome.

so this is the original html generated by tinyMCE:

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

And this is what I need in Flash:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

空城仅有旧梦在 2024-09-21 12:36:23

感谢您的回复,但我找到了一个非常简单的解决方案。
TinyMCE 附带一个名为:legacyoutput 的插件。这将生成在 Flash 中可读的老式 HTML 代码。

如何使用它:

  • legacyoutput 添加到您的插件中
    tinyMCE init 函数
  • 将以下规则添加到您的
    tinyMCE初始化函数:
    extended_valid_elements : 'b,i'

现在您的 HTML 将如下所示:

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

样式属性应替换为颜色属性,以使其在 Flash 中可读
您可以通过编辑legacyoutput js文件(tinymce/plugins/legacyoutput/editor_plugin.js和editor_plugin_src.js)中的规则来解决此问题:

查找“forecolor”并将代码更改为以下内容:

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

现在您可以在Flash中输出此内容,无需使用使用单一黑客。

Thanks for the reply but I found a very simple Solution.
TinyMCE comes with a plug-in called: legacyoutput. This will generate old-school HTML code that's readable in Flash.

how to use this:

  • add legacyoutput to your plugins in
    the tinyMCE init function
  • add the following rule to your
    tinyMCE init function:
    extended_valid_elements : 'b,i'

Now your HTML will look like this:

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

The style attribute should be replaced by a color attribute to make it readable in Flash
You can fix this by editing a rule in the legacyoutput js files (tinymce/plugins/legacyoutput/editor_plugin.js and editor_plugin_src.js):

look for "forecolor" and change the code to the following:

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

Now you can ouput this in Flash witouth using a single hack.

明月松间行 2024-09-21 12:36:23

首先将以下内容添加到您的配置中(这应该会导致使用 b 标签,而不是使用 Strong 表示粗体):

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]);
  }
}

First add the following to your config (this should result in using b-tags instead of strong for bold):

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

You should write an own plugin with the functionality to replaces your spans (using jQuery). The relevant code should look similar to this:

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]);
  }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文