Adam Ebrahim نشر 17 مارس 2021 أرسل تقرير نشر 17 مارس 2021 أحاول أن أضع كود HTML أقوم بجلبة بإستخدام Ajax لكني عند عرض هذا الكود يظهر في شكل نص وليس كود يتم تطبيقه في المتصغح، هنا كود Ajax الذي أستخدمه: $.ajax({ url: 'https://example.com/posts/, dataType: "json", success: function(data) { this.setState({ posts: data.posts }) }.bind(this) }); ثم أقوم بعرض كود HTML بالشكل التالي: <div> {this.state.posts} </div> في النهاية أحصل على الكود الصحيح، لكن المشكلة تكمن في طريقة عرضه في المتصفح حيث يظهر كنص وليس كود كما وضحت سابقًا. 1 اقتباس
0 Wael Aljamal نشر 17 مارس 2021 أرسل تقرير نشر 17 مارس 2021 سبب المشكلة هو أنه لا يتم تفسير النص ك شيفرة HTML ولا يتم عمل render لها لذلك يجب تطبيق المنطق التالي: render() { return ( <div dangerouslySetInnerHTML={{ __html: this.state.posts }} /> ); } أو render() { return ( <div dangerouslySetInnerHTML={{ __html: this.htmlDecode(this.state.posts) }} /> ); } اقتباس
0 Mohammed Saber6 نشر 17 مارس 2021 أرسل تقرير نشر 17 مارس 2021 مرحباً بك: يمكنك استخدام مكتبة react-render-html من npm <div> {renderHTML(this.state.posts)} </div> اقتباس
0 Salah Eddin Beriani2 نشر 20 مارس 2021 أرسل تقرير نشر 20 مارس 2021 في أغلب الأحيان سوف تحتاج تنظيف ال html أو تعديله قليلا قبل حقنه لذا من المنصوح به أن تعين دالة خارجية لتتكفل بالأمر const injectHtml = __html => ({ __html }); const Component = ({ html }) => ( <div> <div dangerouslySetInnerHTML={injectHtml(html)} /> </div> ); اذا كان لديك محتةى في ال html مثل هذا <em>نص ما هنا:</em> يمكنك معالجته باستخدام unescape من مكتبة lodash import _ from 'lodash'; const injectHtml = html => ({ __html: _.unescape(html), }); const Component = ({ html }) => ( <div> <div dangerouslySetInnerHTML={injectHtml(html)} /> </div> ); 1 اقتباس
السؤال
Adam Ebrahim
أحاول أن أضع كود HTML أقوم بجلبة بإستخدام Ajax لكني عند عرض هذا الكود يظهر في شكل نص وليس كود يتم تطبيقه في المتصغح، هنا كود Ajax الذي أستخدمه:
ثم أقوم بعرض كود HTML بالشكل التالي:
في النهاية أحصل على الكود الصحيح، لكن المشكلة تكمن في طريقة عرضه في المتصفح حيث يظهر كنص وليس كود كما وضحت سابقًا.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.