الفرق بين المراجعتين لصفحة: «JavaScript/Document/write»
< JavaScript | Document
إضافة الصّفحة (لكنّها لم تُراجع بعد) |
طلا ملخص تعديل |
||
سطر 37: | سطر 37: | ||
==ملاحظات== | ==ملاحظات== | ||
* الكتابة إلى مستند حُمّل مُسبقًا دون استدعاء التّابع <code>[[JavaScript/Window/open|window.open()]]</code> سيستدعي هذا الأخير تلقائيًّا. عند إنهاء الكتابة للمستند، يُنصَح باستدعاء التّابع <code>[[JavaScript/Window/open|window.open()]]</code> لإخبار المُتصفّح بإنهاء تحميل الصّفحة. يُفسَّرُ (parse) النّص الذي يُكتَب على المستند إلى هيكل المستند. في المثال أعلاه، يُصبح الوسم h1 عقدةً في المستند. | * الكتابة إلى مستند حُمّل مُسبقًا دون استدعاء التّابع <code>[[JavaScript/Window/open|window.open()]]</code> سيستدعي هذا الأخير تلقائيًّا. عند إنهاء الكتابة للمستند، يُنصَح باستدعاء التّابع <code>[[JavaScript/Window/open|window.open()]]</code> لإخبار المُتصفّح بإنهاء تحميل الصّفحة. يُفسَّرُ (parse) النّص الذي يُكتَب على المستند إلى هيكل المستند. في المثال أعلاه، يُصبح الوسم h1 عقدةً في المستند. | ||
إن كان استدعاء التّابع <code>Document.write()</code> مُضمَّنًا في وسم <script> سطريّ (على السّطر)، فلن يُستدعَى التّابع <code>[[JavaScript/Window/open|window.open()]]</code>. وإليك مثالًا على هذا: | إن كان استدعاء التّابع <code>Document.write()</code> مُضمَّنًا في وسم <code>[[HTML/script|<script>]]</code> سطريّ (على السّطر)، فلن يُستدعَى التّابع <code>[[JavaScript/Window/open|window.open()]]</code>. وإليك مثالًا على هذا: | ||
<syntaxhighlight lang="html"> | <syntaxhighlight lang="html"> | ||
<script> | <script> | ||
سطر 46: | سطر 46: | ||
* لا يعمل التّابع <code>Document.write()</code> والتّابع <code>Document.writeln()</code> في مستندات XHTML، وستحصل على خطأ <code>NS_ERROR_DOM_NOT_SUPPORTED_ERR</code> يفيد بأنّ العمليّة غير مدعومة في سطر أوامر الأخطاء. يحدث هذا عن محاولة فتح ملفّ محليّ ذو الامتداد .xhtml أو أي مستندٍ مُقدَّمٍ مع نوع MIME <code>application/xhtml+xml</code>. للاستزادة انظر [http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite أسئلة W3C XHTML الشّائعة]. | * لا يعمل التّابع <code>Document.write()</code> والتّابع <code>Document.writeln()</code> في مستندات XHTML، وستحصل على خطأ <code>NS_ERROR_DOM_NOT_SUPPORTED_ERR</code> يفيد بأنّ العمليّة غير مدعومة في سطر أوامر الأخطاء. يحدث هذا عن محاولة فتح ملفّ محليّ ذو الامتداد .xhtml أو أي مستندٍ مُقدَّمٍ مع نوع MIME <code>application/xhtml+xml</code>. للاستزادة انظر [http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite أسئلة W3C XHTML الشّائعة]. | ||
* ستُتجاهل استدعاءات التّابع <code>Document.write()</code> في السكربتات ذات الخاصيّة defer أو الخاصيّة | * ستُتجاهل استدعاءات التّابع <code>Document.write()</code> في السكربتات ذات الخاصيّة <code>[[HTML/script#defer|defer]]</code> أو الخاصيّة <code>[[HTML/script#async|async]]</code>، وستحصل على رسالة تُشابه النّص <code>"A call to document.write() from an asynchronously-loaded external script was ignored"</code> تُفيد بأنّ استدعاء التّابع من سكربت خارجيّ قد تُجوهِل في طرفيّة الأخطاء. | ||
* استدعاء التّابع <code>Document.write()</code> أكثر من مرّة واحدة داخل وسم iframe يُسبّب الخطأ <code>SCRIPT70: Permission denied</code> في متصفّح Edge فقط، الخطأ يُفيد بأنّ التّصريح قد مُنِع. | * استدعاء التّابع <code>Document.write()</code> أكثر من مرّة واحدة داخل وسم <code>iframe</code> يُسبّب الخطأ <code>SCRIPT70: Permission denied</code> في متصفّح Edge فقط، الخطأ يُفيد بأنّ التّصريح قد مُنِع. | ||
* بدءًا من الإصدار 55 من متصفّح Chrome، لن تُنفّذ عناصر <script> المُدخَلة عبر التّابع <code>Document.write()</code> في حالة فقدان خبيئة HTTP للمُستخدمين المتّصلين عبر اتّصال 2G. | * بدءًا من الإصدار 55 من متصفّح Chrome، لن تُنفّذ عناصر <script> المُدخَلة عبر التّابع <code>Document.write()</code> في حالة فقدان خبيئة HTTP للمُستخدمين المتّصلين عبر اتّصال 2G. |
مراجعة 11:15، 31 مارس 2018
يكتب التّابع Document.write()
سلسلةً نصيّةً إلى مجرى (stream) مستندٍ فُتح بالتّابع window.open()
.
مُلاحظة: لأنّ التّابع Document.write()
يكتب إلى مجرى المستند، فاستدعاؤه على مستندٍ مُغلقٍ (مُحمَّل) يستدعي تلقائيًّا التّابع Document.open()
، الذي سيحذف محتويات المستند.
البنية العامة
document.write(markup);
المعاملات
markup
سلسلة نصيّة تحتوي على النّص المرغوب كتابته على المستند.
مثال
<html>
<head>
<title>write مثال</title>
<script>
function newContent() {
alert("تحميل محتوى جديد");
document.open();
document.write("<h1>المحتوى الجديد الذي سيستبدل المحتوى القديم</h1>");
document.close();
}
</script>
</head>
<body onload="newContent();">
<p>محتوى أصلي</p>
</body>
</html>
ملاحظات
- الكتابة إلى مستند حُمّل مُسبقًا دون استدعاء التّابع
window.open()
سيستدعي هذا الأخير تلقائيًّا. عند إنهاء الكتابة للمستند، يُنصَح باستدعاء التّابعwindow.open()
لإخبار المُتصفّح بإنهاء تحميل الصّفحة. يُفسَّرُ (parse) النّص الذي يُكتَب على المستند إلى هيكل المستند. في المثال أعلاه، يُصبح الوسم h1 عقدةً في المستند.
إن كان استدعاء التّابع Document.write()
مُضمَّنًا في وسم <script>
سطريّ (على السّطر)، فلن يُستدعَى التّابع window.open()
. وإليك مثالًا على هذا:
<script>
document.write("<h1>Main title</h1>")
</script>
- لا يعمل التّابع
Document.write()
والتّابعDocument.writeln()
في مستندات XHTML، وستحصل على خطأNS_ERROR_DOM_NOT_SUPPORTED_ERR
يفيد بأنّ العمليّة غير مدعومة في سطر أوامر الأخطاء. يحدث هذا عن محاولة فتح ملفّ محليّ ذو الامتداد .xhtml أو أي مستندٍ مُقدَّمٍ مع نوع MIMEapplication/xhtml+xml
. للاستزادة انظر أسئلة W3C XHTML الشّائعة.
- ستُتجاهل استدعاءات التّابع
Document.write()
في السكربتات ذات الخاصيّةdefer
أو الخاصيّةasync
، وستحصل على رسالة تُشابه النّص"A call to document.write() from an asynchronously-loaded external script was ignored"
تُفيد بأنّ استدعاء التّابع من سكربت خارجيّ قد تُجوهِل في طرفيّة الأخطاء.
- استدعاء التّابع
Document.write()
أكثر من مرّة واحدة داخل وسمiframe
يُسبّب الخطأSCRIPT70: Permission denied
في متصفّح Edge فقط، الخطأ يُفيد بأنّ التّصريح قد مُنِع.
- بدءًا من الإصدار 55 من متصفّح Chrome، لن تُنفّذ عناصر <script> المُدخَلة عبر التّابع
Document.write()
في حالة فقدان خبيئة HTTP للمُستخدمين المتّصلين عبر اتّصال 2G.