ما الأمر مع HTML داخلي و<تضمين>؟
-
22-07-2019 - |
سؤال
وأنا أحاول لإصلاح خلل في محرر النص الغني أنا باستخدام، والذي يسبب علامات <embed>
لإدراجها دون علامة إغلاق (والذي مسامير انتاج ما يصل تماما). لقد عزل المشكلة لهذه العملية:
// body is a <body> tag
body.innerHTML = '<embed src="http://example.com/whatever"></embed>';
وأية تعليمات برمجية يتوهم، مجرد الاحالة innerHTML
فايرفوكس. يجب أن تكون قادرة على تكرار الخطأ في الحرائق مثل ذلك:
>>> document.body.innerHTML = "<embed></embed>"
"<embed></embed>"
>>> document.body.innerHTML
"<embed>"
هل هناك حلا لهذه؟ أنا في حاجة إلى العلامة، ولكن لا أستطيع أن تبرر إعادة بناء / استبدال كامل غني نص محرر بسبب حالة واحدة حافة كربي.
وأنا لا يمكن تحويل هذا إلى شيء من هذا القبيل document.createElement('embed')
، لأن المدخلات في العالم الحقيقي لهذا المحرر يمكن أن تشمل بسهولة بضع فقرات من النص ملفوفة حول <embed>
. HTML داخلي هو، على الورق، والكمال لهذه الحالة استخدام، أنا فقط لا يمكن الحصول عليها للعمل مع <embed>
.
المحلول
وهذا قد لا يكون الجواب لمشكلتك، ولكن <تضمين> م> لم يكن جزءا من أي إصدار موحد من HTML حتى HTML5، وفقا ل<لأ href = "HTTP: //validator.w3 كافيه / مستندات / help.html "يختلط =" نوفولو noreferrer "> W3C .
نصائح أخرى
وعلى الرغم من أن <تضمين> ليست جزءا من أتش تي أم أل القياسية، تم تنفيذ على نطاق واسع وذلك، من مستوى الأمر الواقع.
وقال ذلك، وأنا على تشغيل فايرفوكس 3 (حقل ألغام v3.0.0.5) وأنا على الحصول على وظائف غير متوقعة قليلا، ولكن الصحيح تماما. كنت أتوقع <م> بالضبط م> HTML لوضعها موضع العنصر اخترتها، ولكن بدلا من ذلك حصلت <م> نظيفة م> أتش تي أم أل.
ومنذ <تضمين هو علامة فارغة (وهذا يعني أنه لا يمكن أن يكون محتويات والصفات فقط)، فايرفوكس يتحول هذا
<embed attribute="value"></embed>
في
<embed attribute="value"/>
، وهو علامة مغلقة صالحة بريفيكتلي. فإنه يفعل نفس الشيء على بطاقات فارغة أخرى، مثل <الإدخال /> و <صورة>
هذه الصفحة الذي يمكن أن نرى في هذا العمل. النسخة scriptless الصفحة ديه الفيديو المدمجة (يوتيوب) من داخل شعبة ردي مشرق. السيناريو يسرق محتوياتها ويضعها في الجسم كما HTML داخلي.
وهذا يذكرني المشاكل دوكمنت كان / ومع العلامات.
وتقع. لا إجابة الأسئلة SO الحق قبل النوم.
<الصورة> حاولت التالية في الحرائق ثانية>
<الصورة>//break up initial embed into single chunks
document.body.innerHTML = "<e"+"mbe"+"d></embed>"
ثانية> <الصورة> وحصلت المتوقع أن تظهر عندما راجعت قيمة HTML داخلي. والفكرة هنا هي لتفريق سلسلة الأولية إلى سلاسل متصلا متعددة. عمل حول غبي، ولكن ممكن. ثانية>