سؤال

مشكلة واجهت مع 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>

نصائح أخرى

ما هو رمز يحاول تحقيقه؟ في كلتا الحالتين تقوم به:

  1. إنشاء جديد p عنصر
  2. إلحاق p عنصر ل sub (الذي أفترض أنه عنصر نفسه كذلك)
  3. تعيين outerHTML التابع p عنصر لبعض النص.

يمكنك فقط القيام به:

  1. إنشاء TextNode جديد مع البيانات النصية المطلوبة
  2. إلحاق ذلك إلى subأطفال الأطفال:

    sub.appendChild(document.createTextNode("Update Complete!"));

أو إذا sub فارغة على أي حال، ببساطة تفعل:

sub.innerHTML = "Update Complete!";
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top