في JavaScript ، تتمثل الطريقة الشائعة في استخدام Encodeuri (decodeuri) و encodeuricomponent (decodeuricomponent). يتم استخدام طرق الاستخدام المحددة والاختلافات.
ولكن كيف تفلت عكسيا من HTML في JavaScript؟ على سبيل المثال ، الكود التالي:
var jsondata = {title: "<٪ = data.name؟ data.name: title ٪>" ، desc: "<٪ = data.content؟ data.content: '' ٪>" ، Image: "<٪- data.img؟ data.img: '' ٪>"} ؛الجزء ملفوف في <٪ = ٪> هو القيمة التي يتم إرجاعها من الخادم (يتم أخذ الرمز في المثال أعلاه من رمز قالب EJS EJS في node.js). إذا كانت السلسلة التي يتم إرجاعها من الخادم تحتوي على علامات اقتباس ، مثل عروض أسعار واحدة أو مزدوجة ، فسيكون رمز JS أعلاه خطأ عند تفسيره في المتصفح. كيف تحل هذه المشكلة؟
الفكرة الأساسية هي عكس السلسلة HTML من خلال سمة InnerHTML لعنصر DOM في الصفحة ، ثم إرجاع القيمة إلى متغير JavaScript. انظر إلى الرموز التالية:
1. طريقة كتابة جافا سكريبت الأصلية:
دالة htmldecode (الإدخال) {var e = document.createElement ('div') ؛ E.InnerHtml = الإدخال ؛ إرجاع echildnodes.length === 0؟ "":2. طريقة كتابة jQuery:
دالة htmldecode (value) {return $ ('<div/>'). html (value) .text () ؛ }تستخدم الوظيفة الأولى طريقة JavaScript الأصلية لإنشاء عنصر DIV ، ثم تقوم بتعيين السلسلة التي يجب الهروب عكسياً إلى خاصية InnerHTML الخاصة بها ، وأخيراً تُرجع قيمة خاصية القيمة لعنصر DIV. تستخدم الوظيفة الثانية طريقة jQuery ، ومبادئها الأساسية هي نفس الوظيفة الأولى. نظرًا لأن عناصر Div يتم إنشاؤها فقط في الذاكرة ولا يتم إلحاقها أو خاملة في الصفحة ، فلن يكون لها أي تأثير على الصفحة الحالية.
أخيرًا ، نقوم بتغيير الكود الأولي إلى الطريقة التالية:
var jSondata = {title: $ ('<div/>'). html ("<٪ = data.name؟ name.name: title ٪>"). text () ، desc: $ ('<div/>'). ٪> "} ؛هذا يتيح انعكاس HTML للأوتار التي يتم إرجاعها بواسطة الخادم في JavaScript.
التفسير التفصيلي أعلاه للهروب العكسي لـ HTML في JavaScript هو كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.