Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Rails应用程序中使用外部脚本时出现Javascript null错误_Javascript_Ruby On Rails_Turbolinks - Fatal编程技术网

在Rails应用程序中使用外部脚本时出现Javascript null错误

在Rails应用程序中使用外部脚本时出现Javascript null错误,javascript,ruby-on-rails,turbolinks,Javascript,Ruby On Rails,Turbolinks,我正在使用一个广告服务提供商的横幅广告,类似于谷歌adsense。 他们网站上的说明清楚而简单地说明,我们所需要做的就是将下面的代码复制到我们的网页正文中 <!-- Begin Hsoub Ads Ad Place code --> <script type="text/javascript"><!-- hsoub_adplace = [my account id]; hsoub_adplace_size = '728x90'; //--></s

我正在使用一个广告服务提供商的横幅广告,类似于谷歌adsense。 他们网站上的说明清楚而简单地说明,我们所需要做的就是将下面的代码复制到我们的网页正文中

<!-- Begin Hsoub Ads Ad Place code -->
<script type="text/javascript"><!--
  hsoub_adplace = [my account id];
  hsoub_adplace_size = '728x90';
//--></script>
<script src="http://ads2.hsoub.com/show.js" type="text/javascript"></script>
<!-- End Hsoub Ads Ad Place code -->

我已经复制并粘贴到我的rails应用程序中,在一个视图文件的主体内,但是横幅没有显示,我可以看到javascript错误(使用浏览器检查源代码)

TypeError:document.getElementById(…)为空

ps:在旧浏览器上会显示横幅,但在最新版本的浏览器上不会显示

ps2:hsoub的支持多次确认,他们方面没有问题(他们的代码很好,可以在数千个网站上运行,我的帐户处于活动状态,没有问题)。这一定是我的代码出了问题。。我在想Rails处理javascript的方式。。。 你能帮我解决这个错误并显示横幅吗

ps3:我正在使用rails
6.0.1
和TurboLink
5.2.0


您可以在在线查看错误/源代码。我猜这是一个脚本定位问题。脚本可能正在查找尚未呈现的元素,即文档和文档正文尚未准备就绪。将脚本移动到页面末尾,即body标记之后,看看这是否有帮助。否则,请添加确切的错误,并可能显示您的页面和脚本相对于其他元素的压缩视图

<!DOCTYPE html>
<html>
    <head></head>
    <body>
        <h1>Hello world</h1>
    </body>

    <script type="text/javascript">
        hsoub_adplace = 12345;
        hsoub_adplace_size = '728x90';
    </script>
    <script src="http://ads2.hsoub.com/show.js" type="text/javascript"></script>
</html>

你好,世界
hsoub_adplace=12345;
hsoub_adplace_尺寸='728x90';
通过移动脚本,我成功地加载了
iframe

脚本(仍然)在
主体
标记中


该问题是由CloudFlare cdn服务的火箭加载器功能引起的

Rocket Loader改进了包含Javascript的页面的绘制时间。 通过更快地加载内容,访问者将获得更好的体验 速度也是一些搜索排名的一个因素

Rocket Loader通过异步加载您的 Javascripts,包括第三方脚本,以便它们不会阻塞 呈现页面的内容


我禁用了它,现在出现了横幅。

可能是turbolinks,你能在刷新页面(F5)时显示横幅吗?它从不显示,尝试刷新。你能为问题添加更多细节吗,比如页面的小视图,这将给我们一个清晰的理解来帮助您。@SunilLulla我已经提到了页面本身。你可以在t a f q i t检查。狱警m@bwalshy实际上是的,它现在正在工作。该问题是由cloudflare引起的。当我禁用他们的火箭加载器功能时,横幅开始出现。我已经将它移出了身体,但仍然存在相同的问题。该网站在t a f q i t在线。如果您能看一下那里的代码/错误,我将不胜感激。我不是前端开发人员,因此这里可能会有一些我不知道的神奇之处,但看起来那些脚本标记仍然在
正文
中。您可能还可以从第一个脚本元素中删除
标记。