Html-react-parser: تجاهل السمة عندما يكون محتوى السمة غير صالح

تم إنشاؤها على ٣ مارس ٢٠٢٠  ·  6تعليقات  ·  مصدر: remarkablemark/html-react-parser

html-reaction-parser أداة عظيمة! لكن لسوء الحظ ، لدي استثناء عندما أحاول تحليل سلسلة html التي تحتوي على سمة غير صالحة ، لذلك يتعطل تطبيقي: undefined: 1 : 2: الخاصية مفقودة ':'. يمكنني بالطبع تجربة هذا الاستثناء لتجنب تعطل التطبيق ولكنه لن يحل مشكلتي حقًا.

أدرك أن هذا ليس خطأ المحلل اللغوي html-response-parser ، لكني أرغب في معرفة ما إذا كان من الممكن باستخدام html-reaction-parser تجاهل بعض السمات عندما تكون غير صالحة ، في حالتي أواجه مشكلات بنمط غير صالح ينسب. محتواه غير صالح. إذا لم يكن كذلك ، فهل لديك أي فكرة أخرى لتحقيق ذلك؟

شكرا لك !

question

التعليق الأكثر فائدة

نظرًا لأن المكتبة تستخدم style-to-object أسفل الغطاء (لتحليل سمة النمط المضمنة في كائن) ، يمكنك التفاف تحليل النمط في محاولة:

const parse = require('html-react-parser');
const { domToReact } = parse;
const style = require('style-to-object');

parse('<hr style="/*">', {
  replace: domNode => {
    if (domNode.attribs && domNode.attribs.style) {
      try {
        style(domNode.attribs.style);
      } catch (error) {
        // delete the attribute that's causing the error
        // then convert the dom node to react
        delete domNode.attribs.style;
        return domToReact(domNode);
      }
    }
  },
});

انظر مثال Repl.it.

ال 6 كومينتر

هذا يبدو وكأنه CSS غير صالح في HTML الخاص بك. راجع " المحلل اللغوي يطرح خطأ ".

هذا مرتبط بالرقم 125

سلام،

شكرا لاجابتك. لقد رأيت بالفعل هذه القضايا. لسوء الحظ ، لا يمكنني استخدام sanitize-html ، والسبب هو أنني بحاجة إلى الاحتفاظ بنمط صالح وإزالته فقط عندما يكون غير صالح.

هل هناك أي طريقة لإزالة ذلك باستخدام تطهير html أو مكتبة أخرى؟ لا أعرف حقًا كيف يمكنني معرفة ما إذا كان النمط المحدد صالحًا أم لا في جافا سكريبت. أعلم أنه لا يتعلق بمحلل html-reaction-parser ، لكن يمكنني بالفعل استخدام طريقة استبدال html-reaction-parser لإزالة سمة النمط هذه طالما أنني أعرف كيفية التأكد من أن النمط صالح أم لا.

تحرير: ربما يجب علي تحرير المحلل اللغوي ذي النمط المضمن (باللغة المحلية) لإرجاع القيمة فارغة بدلاً من طرح الخطأ "المفقود": "" عندما يكون محتوى السمة غير صالح؟

شكرا لك.

نظرًا لأن المكتبة تستخدم style-to-object أسفل الغطاء (لتحليل سمة النمط المضمنة في كائن) ، يمكنك التفاف تحليل النمط في محاولة:

const parse = require('html-react-parser');
const { domToReact } = parse;
const style = require('style-to-object');

parse('<hr style="/*">', {
  replace: domNode => {
    if (domNode.attribs && domNode.attribs.style) {
      try {
        style(domNode.attribs.style);
      } catch (error) {
        // delete the attribute that's causing the error
        // then convert the dom node to react
        delete domNode.attribs.style;
        return domToReact(domNode);
      }
    }
  },
});

انظر مثال Repl.it.

شكرا لك remarkablemark . أنا أيضًا أعاني من هذه المشكلة لفترة طويلة. نقدر جدا الحل!

على الرحب والسعةBananaWanted

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات