v2.5.2
Giriş yap

JS ile script tag'ını append etme hk

r00t
437 defa görüntülendi

Merhabalar,
Dış kaynaktan aldığım bir reklam tagi var.

<script src="https://ads-site.com/kod?v=1&site=2&param=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.

Cevap yaz
Cevaplar (3)
r00t
754 gün önce

alternatif çözüm olarak iframe olarak ekledim bu arada; bu şekilde çalışyor. stiliyle oynamak gerekiyor sadece

selcuk
757 gün önce

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&param=3';
    document.body.appendChild(el);
    document.querySelector('.element').appendChild(el);
ebykdrms
757 gün önce

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&param=3'></script>");
  });
</script>

Tabi kendi kodunuza göre düzenlemeniz gerek.
Denemedim ama çalışır herhalde...