المعاينة المباشرة للإدخال شكل أتش تي أم أل تنسيق مع القضبان

StackOverflow https://stackoverflow.com/questions/5475862

سؤال

أريد ميزة معاينة بعض النص مع علامات هتمل ثم تخزين النص في قاعدة البيانات.وأنا أعلم أنها ليست فكرة جيدة للسماح هتمل في قاعدة البيانات ، لأسباب أمنية شس.ما هي الطرق لتحقيق ذلك?

أريد ميزة مماثلة لتلك التي لدينا في ستاكوفيرفلو ، حيث يمكننا تنسيق سورسكوديس لدينا.شكرا.

هل كانت مفيدة؟

المحلول

الطريقة الموصى بها:

إنشاء مستمع حدث جافا سكريبت للنموذج على صفحة هتمل الخاصة بك.إرسال المدخلات عبر اياكس إلى القضبان التطبيق الخاص بك, ، حيث يتم تقديم الإدخال (على سبيل المثال بواسطة نفس المساعد الذي سيعرض الإخراج لاحقا من قاعدة البيانات).

استخدم لغة ترميز مثل قماش أحمر / نسيج لتجنب شس.كما انها أسهل لكتابة / فهم للمستخدمين!

الطريقة المطلوبة:

إنشاء مستمع الحدث جافا سكريبت وكتابة محتويات النموذج / الإدخال إلى شعبة أخرى.

جافا سكريبت ستحتاج يعتمد على المكتبة التي تستخدمها (النموذج أو مسج ، على سبيل المثال).

مثال:

لنفترض أن لديك نموذجا يحتوي على منطقة نصية, <textarea id="text"></textarea>, ، وشعبة منطقة المعاينة مع <div id="preview"></div> وأنت تستخدم النموذج الأولي:

document.observe("dom:loaded", function() {
  new Form.Element.Observer('text', 0.25, 
    function () {
      $('preview').update($F('text'));
    }
  );
}

سيؤدي هذا إلى التحقق من منطقة النص كل 250 مللي ثانية للتغييرات ونسخ مدخلاتها في قسم المعاينة.

في الواقع ، تحتاج فقط رمز داخل الدالة التي تسمى مع document.observe (بدءا من new Form.Element.Observer....ال document.observe سيتم استدعاء هذا الرمز بعد انتهاء المتصفح من بناء شجرة دوم.

نصائح أخرى

يمكنك أيضا التفكير في استخدام شيء مثل النسيج أو علامة تجارية، والتي هي طرق لتحقيق علامات HTML مع نص عادي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top