JS ile script tag'ını append etme hk
Merhabalar,
Dış kaynaktan aldığım bir reklam tagi var.
<script src="https://ads-site.com/kod?v=1&site=2¶m=3"></script>
</script>
benzeri bir html kodundan ibaret. Ama sorun şu ki; sitede istediğim bir yere "append" ile içine ekleyerek kullanmam gerekiyor. Yani JS olarak eklemem lazım o script kodunu. Ama konsolda aldığım hata şu şekilde:
"Failed to execute 'write' on 'Document': It isn't possible to write into a document from an asynchronously-loaded external script unless it is explicitly opened."
İçeri aktardığım external script içerisinde "document.write" komutları var.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
hem body e hemde element adında bir clasın içerisine script i ekletiyorum. Bunu mu istemiştiniz
const el = document.createElement('script');
el.src = 'https://ads-site.com/kod?v=1&site=2¶m=3';
document.body.appendChild(el);
document.querySelector('.element').appendChild(el);
https://stackoverflow.com/questions/40646588/error-it-isnt-possible-to-write-into-a-document-from-an-asynchronously-loaded
Burada doğru kabul edilen cevapta sorunu https://github.com/krux/postscribe ile çözdüklerini yazmışlar.
Yani sayfanıza şu kodu ekliyorsunuz:
<script src="https://cdnjs.cloudflare.com/ajax/libs/postscribe/2.0.8/postscribe.min.js"></script>
Sonra da belirttiğiniz script elementini sayfaya eklemek için şu yolu kullanıyorsunuz:
<div id="ad"><h5>Advertisement</h5></div>
<script type="text/javascript">
// jQuery used as an example of delaying until load.
$(function() {
// Build url params and make the ad call
postscribe("#ad", "<script src='https://ads-site.com/kod?v=1&site=2¶m=3'></script>");
});
</script>
Tabi kendi kodunuza göre düzenlemeniz gerek.
Denemedim ama çalışır herhalde...