سؤال

أنا أستخدم Tinymce لتحرير/ترميز النص في الواجهة الخلفية لـ Zend Framework. أرغب في استخدام HTML الذي تم إنشاؤه في تطبيق Flash AS3. المشكلة هي أن الفلاش لا يدعم السمات في <span>'س، <em> العلامات ، <strong> العلامات وما إلى ذلك أعتقد أن هناك احتمالان هنا:

  • قم بتغيير تكوين Tinymce بحيث يستخدم علامات الخطوط بدلاً من Span's ، <b> بدلاً من <strong>,...
  • استبدل جميع علامات HTML في فلاش مع Regex.

أي مساعدة سيكون موضع ترحيب.

لذلك هذا هو HTML الأصلي الذي تم إنشاؤه بواسطة Tinymce:

<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> 
هل كانت مفيدة؟

المحلول

شكرا للرد ولكن وجدت حل بسيط جدا. يأتي Tinymce مع مكون إضافي يسمى: LegacyOutput. سيؤدي ذلك إلى إنشاء رمز HTML في المدرسة القديمة القابلة للقراءة في Flash.

كيف يستعمل هذا:

  • يضيف LegacyOutput إلى الإضافات الخاصة بك في وظيفة init tinymce
  • أضف القاعدة التالية إلى وظيفة init tinymce:extended_valid_elements: 'b ، i'

الآن سيبدو HTML الخاص بك هكذا:

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

يجب استبدال سمة النمط بسمة ملونة لجعلها قابلة للقراءة في Flash ، يمكنك إصلاح ذلك عن طريق تحرير قاعدة في ملفات JS LegacyOutput (Tinymce/Plugins/LegacyOutput/Editor_Plugin.js و Editor_Plugin_Src.js):

ابحث عن "التنبؤ" وقم بتغيير الرمز إلى ما يلي:

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

الآن يمكنك ouput هذا في Flash Witouth باستخدام اختراق واحد.

نصائح أخرى

أضف أولاً ما يلي إلى التكوين الخاص بك (يجب أن يؤدي هذا إلى استخدام علامات B بدلاً من قوي لـ Bold):

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]);
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top