错误:无法从异步加载的外部脚本写入文档

时间:2016-11-17 04:13:04

标签: javascript ruby-on-rails ruby-on-rails-4 heroku amazonads

我尝试在rails 4网站上加载广告并继续收到以下错误

onejs?MarketPlace=US&adInstanceId=xxxxxxxx&storeId=xxxxxxx:1 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.

如果我刷新页面广告加载就好了。以下是来自amazon的广告代码,该代码位于show.html.erb文件中。

<script src="//z-na.amazon-adsystem.com/widgets/onejs?MarketPlace=US&adInstanceId=xxxxxxxxx&storeId=xxxxxxxx"></script>

如果我将亚马逊广告与iframe代码一起使用,则没有问题,但此格式广告没有iframe选项(这是原生广告 - 扫描相关内容以展示广告的页面)

它是一个rails 4站点,在heroku上启用了turbolinks。我完全不知道如何解决它。 adwords和media.net广告也在发生这种情况。

知道如何解决?

1 个答案:

答案 0 :(得分:9)

此库可能会解决您的问题https://github.com/krux/postscribe

  

异步编写javascript,即使是document.write。

<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=doubleclick_url_with_params><\/script>');
  });
</script>