تذكر أنه بعد تحميل الصفحة ، يتم إغلاق دفق إخراج المتصفح تلقائيًا. بعد ذلك ، ستفتح أي مستند. write () التي تعمل على الصفحة الحالية دفق إخراج جديد ، والذي سيقوم بمسح محتوى الصفحة الحالية (بما في ذلك أي متغيرات أو قيم المستند المصدر). لذلك ، إذا كنت ترغب في استبدال الصفحة الحالية بـ HTML التي تم إنشاؤها بواسطة البرنامج النصي ، فيجب عليك توصيل محتوى HTML وتعيينه بمتغير ، واستخدام طريقة. Write () لإكمال عملية الكتابة. بدون مسح المستند وفتح دفق بيانات جديد ، يمكن لمكالمة مستند. write () القيام بكل شيء.
هناك شيء آخر يجب شرحه حول طريقة المستند. Write () هو مستند الأسلوب المرتبط. cclose (). بعد أن يكتب البرنامج النصي المحتوى إلى النافذة (سواء كانت هذه أو نافذة أخرى) ، يجب إغلاق دفق الإخراج. بعد آخر مستند. write () من برنامج تأخير البرنامج النصي ، يجب عليك التأكد من تضمين طريقة المستند. cclose (). إذا لم تفعل ذلك ، فلا يمكنك عرض الصور والنماذج. وأي طريقة تسمى المستند. write () ستؤدي فقط إلى إلحاق المحتوى بالصفحة دون مسح المحتوى الحالي لكتابة القيمة الجديدة. لإظهار طريقة document.write () ، نقدم نسختين من نفس التطبيق. يكتب المرء محتوى إلى مستند يحتوي على البرنامج النصي ، ويكتب محتوى آخر إلى نافذة منفصلة. يرجى النقر على كل مستند في محرر النصوص ، وحفظه مع ملحق ملف .html ، وفتح المستند في المتصفح.
مثال 1 ينشئ زرًا يجمع بين محتوى HTML الجديد للوثيقة ، بما في ذلك علامات HTML لعنوان المستند الجديد وسمات الألوان للعلامة. في المثال ، يوجد عامل تشغيل += غير مألوف للقراء. يضيف السلسلة على يمينها إلى المتغير على يساره. يتم استخدام هذا المتغير لتخزين السلسلة. يمكن لهذا المشغل الجمع بسهولة بين عدة عبارات منفصلة في سلاسل طويلة. باستخدام المحتوى المدمج في متغير NewContent ، يمكن لبيان المستند. write () كتابة جميع المحتوى الجديد في المستند ، مما يؤدي تمامًا إلى مسح المحتوى في المثال 1. ثم تحتاج إلى الاتصال ببيان المستند. close () لإغلاق دفق الإخراج. عند تحميل المستند والنقر فوق الزر ، يمكنك ملاحظة أن عنوان المستند في شريط عنوان المستعرض يتغير نتيجة لذلك. عندما تعود إلى المستند الأصلي وانقر فوق الزر مرة أخرى ، يمكنك أن ترى أن الصفحة الثانية المكتوبة بشكل ديناميكي تعمل بشكل أسرع من إعادة تحميل المستند الأصلي.
مثال 1 استخدم document.write () في النافذة الحالية.
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3 xmlns = "http://www.w3.org/1999/xhtml"> <title> الكتابة إلى نفس المستند </title> <script language = "javaScript"> function rewrite () bgColor = 'Aqua'> <h1> هذا المستند جديد. newContent += "</body> </html>" // اكتب html إلى مستند وثيقة نافذة جديدة. write (newContent) document.close () // close dream} </script> </hege> <body> <form> <input type = "button" value = "contct" onclick = "rewrite ()
في المثال 2 ، يكون الموقف معقدًا بعض الشيء لأن البرنامج النصي ينشئ نافذة طفل يتم فيها كتابة المستند بالكامل الذي تم إنشاؤه بواسطة البرنامج النصي. للحفاظ على الإشارة إلى النافذة الجديدة النشطة في كلتا الوظيفتين ، نعلن أن متغير NewWindow كمتغير عالمي. عند تحميل الصفحة ، يقوم معالج أحداث Onload باستدعاء وظيفة makenwwindow () ، والتي تنشئ نافذة طفل فارغة. بالإضافة إلى ذلك ، نضيف خاصية إلى المعلمة الثالثة من طريقة Window.Open () لجعل شريط حالة النافذة الطفل مرئية.
يقوم الزر الموجود في الصفحة باستدعاء طريقة subwrite () ، والمهمة الأولى التي يؤديها هي التحقق من الخصائص المغلقة لنافذة الطفل. إذا تم إغلاق النافذة المرجعية ، فإن هذه الخاصية (موجودة فقط في إصدارات المتصفح الأحدث) تُرجع صحيحًا. إذا كان هذا هو الحال (إذا أغلق المستخدم يدويًا النافذة) ، فإن الدالة تستدعي وظيفة makenewwindow () مرة أخرى لإعادة فتح النافذة.
بعد فتح النافذة ، يتم دمج المحتوى الجديد كمتغير سلسلة. كما هو الحال في المثال 1 ، اكتب المحتوى مرة واحدة (على الرغم من أنه ليس ضروريًا لنافذة منفصلة) ، ثم اتصل بالطريقة Close (). لكن لاحظ أن هناك اختلافًا مهمًا: كل من أساليب الكتابة () وإغلاق () تحدد بوضوح النوافذ الفرعية.
مثال 2 استخدم document.write () في نافذة أخرى
<! doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3 xmlns = "http://www.w3.org/1999/xhtml"> <title> الكتابة إلى subwindow </itlem> <script language = "javaScript"> var newwindow function makenewindow () {newwindow = window.open ("" ، "" ، "Quitst ، extract ، قم بعمل نافذة جديدة إذا كان شخص ما قد أغلقها إذا (newWindow.closed) {makenwwindow ()} // إحضار الريف الفرعي إلى newWindow.focus () // تجميع المحتوى لـ new window var newContent = "<html> <Head> جديد. </h1> "newContent +=" </body> </html> "// اكتب html إلى مستند نافذة جديدة newWindow.document.write (newContent) newWindow.document.close () subwindow "onClick =" Subwrite () "> </pong> </body> </html>