جافا سكريبت: IE: Outterhtml
-
19-09-2019 - |
سؤال
مشكلة واجهت مع OUTERHTML باستخدام متصفح IE
إذا قلت:
txt="Update Complete!";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;
أنه يعمل بشكل جيد:
ولكن إذا قلت
txt="1 Error:<ul><li>Some Error</li></ul>";
msg = sub.appendChild(d.createElement("p"));
msg.outerHTML = txt;
يعطيني خطأ من:
Message: Unknown runtime error
Line: 389
Char: 4
Code: 0
URI: http://10.1.1.16/schedule_calendar/js/validate.js
الخط: 389 يتعلق ب "Msg.outerhtml = TXT؛"
هل يمكن لأي شخص أن يساعدني في هذا الأمر .. شكرا مقدما
المحلول
لأسباب لا أعرف، في معظم الحالات تعديل OutterHTML غير مسموح به. أنا أظن أنه، هذا لأنه عند تعديل OutterHTML لعنصر، فأنت في الواقع استبدال العنصر الحالي.
IMO، إنه أكثر أمانا لتحل محل عنصر من تعديل Outterhtml.
في قضيتك، ربما هذا سوف يكفي:
التحديثات هنا:
<html>
<head><title>Test</title></head>
<body>
<div>
some content...
<div id="sub"></div>
</div>
<script type="text/javascript">
window.onload = function(){
var sub = document.getElementById('sub');
var txt="<p>Update Complete!</p>";
sub.innerHTML = txt;
alert('test 1');
txt="1 Error:<ul><li>Some Error</li></ul>";
sub.innerHTML = txt;
}
</script>
</body>
</html>
نصائح أخرى
ما هو رمز يحاول تحقيقه؟ في كلتا الحالتين تقوم به:
- إنشاء جديد
p
عنصر - إلحاق
p
عنصر لsub
(الذي أفترض أنه عنصر نفسه كذلك) - تعيين
outerHTML
التابعp
عنصر لبعض النص.
يمكنك فقط القيام به:
- إنشاء TextNode جديد مع البيانات النصية المطلوبة
إلحاق ذلك إلى
sub
أطفال الأطفال:sub.appendChild(document.createTextNode("Update Complete!"));
أو إذا sub
فارغة على أي حال، ببساطة تفعل:
sub.innerHTML = "Update Complete!";
لا تنتمي إلى StackOverflow