لقد حاولت القيام بذلك وانتهى بي الأمر بنتائج مماثلة. حاولت استخدام decorateCookedElement لأننا سنقوم بإيقاف decorateCooked تدريجيًا في النهاية
api.decorateCookedElement(
(element) => {
element.childNodes.forEach((node) => {
if (node.dataset && node.dataset.pawidget) {
node.insertAdjacentHTML(
"beforeend",
"<div id='PurpleAirWidget_11726_module_AQI_conversion_C0_average_0_layer_standard'>Loading PurpleAir Widget...</div>"
);
loadScript(
`https://www.purpleair.com/pa.widget.js?key=${node.dataset.pawidget}&module=AQI&conversion=C0&average=0&layer=standard&container=PurpleAirWidget_11726_module_AQI_conversion_C0_average_0_layer_standard`
);
}
});
},
{ id: "widget-append", onlyStream: true, afterAdopt: true }
);
الاختلاف الطفيف هنا هو أنني مررت المفتاح مع سمة البيانات:
<div data-PAWidget="21R72LUN79CXRZ50"></div>
هذا يعمل بشكل جيد بالنسبة لي إذا كانت هذه هي المرة الأولى التي يتم فيها تحميل البرنامج النصي. إذا قمت بعرض منشور بالبرنامج النصي، ثم عدت إلى قائمة الموضوعات وأعدت إدخال الموضوع، فلن يعمل (حتى أقوم بتحديث). يمكنني رؤية decorateCookedElement يتم تشغيله في كل مرة يتم فيها تحميل المنشور ذي الصلة، ولكن هناك شيء يمنع البرنامج النصي من العمل مرة أخرى.
لست متأكدًا مما إذا كان ذلك متعلقًا، ولكني أرى أيضًا خطأ Uncaught TypeError: i is null في وحدة التحكم من pa.widget.js:
