الفرق بين المراجعتين لصفحة: «JavaScript/Document/adoptNode»

من موسوعة حسوب
لا ملخص تعديل
طلا ملخص تعديل
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:<code>Document.adoptNode()‎</code>}}</noinclude>
<noinclude>{{DISPLAYTITLE:<code>Document.adoptNode()‎</code>}}</noinclude>


يتبنّى هذا التّابع عقدة خارجيّة، وتُحذف العقدة وشجرتها الفرعيّة من المُستند الأصلي (إن كان موجودا)، وتتغيّر قيمة المُستند المالِك <code>[[JavaScript/Node/ownerDocument|ownerDocument]]</code> إلى المُستند الحاليّ. ويُمكن بعد ذلك إدخال العقدة إلى المُستند الحاليّ.
يتبنّى التّابع <code>Document.adoptNode()‎</code> عقدة خارجيّة، وتُحذف العقدة وشجرتها الفرعيّة من المُستند الأصلي (إن كان موجودًا)، وتتغيّر قيمة المُستند المالِك <code>[[JavaScript/Node/ownerDocument|ownerDocument]]</code> إلى المُستند الحاليّ. ويُمكن بعد ذلك إدخال العقدة إلى المُستند الحاليّ.


==البنية العامة==
==البنية العامة==
سطر 7: سطر 7:
node = document.adoptNode(externalNode);   
node = document.adoptNode(externalNode);   
</syntaxhighlight>
</syntaxhighlight>
*<code>node</code>
: يُمثّل العقدة المُتبنّاة والتي مالِكها هو المُستند الحالي.وعقدتها الأب <code>[[JavaScript/Node/parentNode|parentNode]]</code>  ذات قيمةٍ <code>null</code>، وذلك لأنّها لم تُدخَل بعدُ إلى شجرة المُستند. لاحِظ أنّ كلّا من <code>node</code> و<code>externalNode</code> سيُصبحان نفس الكائن بعد الاستدعاء.


*<code>externalNode</code>
=== <code>node</code> ===
: هي العقدة التي ستُتبنّى من مُستند آخر.
يُمثّل العقدة المُتبنّاة والتي مالِكها هو المُستند الحالي وعقدتها الأب <code>[[JavaScript/Node/parentNode|parentNode]]</code>  ذات قيمةٍ <code>null</code>، وذلك لأنّها لم تُدخَل بعدُ إلى شجرة المُستند. لاحِظ أنّ كلّا من <code>node</code> و<code>externalNode</code> سيُصبحان نفس الكائن بعد الاستدعاء.
 
=== <code>externalNode</code> ===
هي العقدة التي ستُتبنّى من مُستند آخر.


==مثال==
==مثال==
سطر 27: سطر 28:
يُمكن لاستدعاء <code>adoptNode</code> أن يفشل بسبب قدوم العقدة الأصل من تطبيق آخر، لكنّ هذا لا يكون مُشكلة في الغالب مع تطبيقات المُتصفّحات.
يُمكن لاستدعاء <code>adoptNode</code> أن يفشل بسبب قدوم العقدة الأصل من تطبيق آخر، لكنّ هذا لا يكون مُشكلة في الغالب مع تطبيقات المُتصفّحات.


يجب نسخ العقد من المُستندات الخارجيّة باستخدام التّابع <code>[[Document/importNode|document.importNode()]]</code>‎ أو تبنّيها بالتّابع <code>[[Document/adoptNode|document.adoptNode()]]</code>‎ قبل إمكان إدخالها إلى المُستند الحاليّ. للاستزادة حول مشاكل <code>[[JavaScript/Node/ownerDocument|ownerDocument]]</code> انظر  الأسئلة الشّائعة على [http://www.w3.org/DOM/faq.html#ownerdoc W3C DOM].
يجب نسخ العقد من المُستندات الخارجيّة باستخدام التّابع <code>[[Document/importNode|document.importNode()]]</code>‎ أو تبنّيها بالتّابع <code>[[Document/adoptNode|document.adoptNode()]]</code>‎ قبل إمكان إدخالها إلى المُستند الحاليّ. للاستزادة حول مشاكل <code>[[JavaScript/Node/ownerDocument|ownerDocument]]</code> انظر  الأسئلة الشّائعة على [http://www.w3.org/DOM/faq.html#ownerdoc W3C DOM].


لا يُلزِم مُتصفّح Firefox على العمل بهذه القاعدة (لأنّ الإلزام بها عطّل بعض المواقع). نُشجّع مطوّري الويب على إصلاح الشيفرة الخاصّة بهم لاتّباع هذه القاعدة لتوافقيّةٍ مُستقبليّةٍ أفضل.
لا يُلزِم مُتصفّح Firefox على العمل بهذه القاعدة (لأنّ الإلزام بها عطّل بعض المواقع). وإنما يُشجّع مطوّري الويب على إصلاح الشيفرة الخاصّة بهم لاتّباع هذه القاعدة لتوافقيّةٍ مُستقبليّةٍ أفضل.


==انظر أيضًا==
==انظر أيضًا==

المراجعة الحالية بتاريخ 13:34، 24 مارس 2018


يتبنّى التّابع Document.adoptNode()‎ عقدة خارجيّة، وتُحذف العقدة وشجرتها الفرعيّة من المُستند الأصلي (إن كان موجودًا)، وتتغيّر قيمة المُستند المالِك ownerDocument إلى المُستند الحاليّ. ويُمكن بعد ذلك إدخال العقدة إلى المُستند الحاليّ.

البنية العامة

node = document.adoptNode(externalNode);

node

يُمثّل العقدة المُتبنّاة والتي مالِكها هو المُستند الحالي وعقدتها الأب parentNode ذات قيمةٍ null، وذلك لأنّها لم تُدخَل بعدُ إلى شجرة المُستند. لاحِظ أنّ كلّا من node وexternalNode سيُصبحان نفس الكائن بعد الاستدعاء.

externalNode

هي العقدة التي ستُتبنّى من مُستند آخر.

مثال

var iframe = document.getElementById('my-iframe');
var iframeImages = iframe.contentDocument.getElementsByTagName('img');

var newParent = document.getElementByTagName('images');

for (var i = 0; i < iframeImages.length; i++) {
    newParent.appendChild(document.adoptNode(iframeImages[i]));
}

ملاحظات

يُمكن لاستدعاء adoptNode أن يفشل بسبب قدوم العقدة الأصل من تطبيق آخر، لكنّ هذا لا يكون مُشكلة في الغالب مع تطبيقات المُتصفّحات.

يجب نسخ العقد من المُستندات الخارجيّة باستخدام التّابع document.importNode()‎ أو تبنّيها بالتّابع document.adoptNode()‎ قبل إمكان إدخالها إلى المُستند الحاليّ. للاستزادة حول مشاكل ownerDocument انظر الأسئلة الشّائعة على W3C DOM.

لا يُلزِم مُتصفّح Firefox على العمل بهذه القاعدة (لأنّ الإلزام بها عطّل بعض المواقع). وإنما يُشجّع مطوّري الويب على إصلاح الشيفرة الخاصّة بهم لاتّباع هذه القاعدة لتوافقيّةٍ مُستقبليّةٍ أفضل.

انظر أيضًا

مصادر ومواصفات