Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.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
Javascript JS定义只在硬刷新时加载函数_Javascript_Ruby On Rails_Turbolinks_Gfycat - Fatal编程技术网

Javascript JS定义只在硬刷新时加载函数

Javascript JS定义只在硬刷新时加载函数,javascript,ruby-on-rails,turbolinks,gfycat,Javascript,Ruby On Rails,Turbolinks,Gfycat,有一个javascript库,可以在我的网站上嵌入用Rails编写的带有如下div的内容: 要做到这一点,它告诉我在开始的body标记之后添加他们的脚本 <script> (function(d, s, id){ var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) {return;} js = d.createElement(s); js.id = id;

有一个javascript库,可以在我的网站上嵌入用Rails编写的带有如下div的内容:


要做到这一点,它告诉我在开始的body标记之后添加他们的脚本

<script>
  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "https://assets.gfycat.com/gfycat.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'gfycat-js'));
</script>
因此,我尝试在文档ready中添加gfycat函数,但得到了完全相同的结果


有人知道是什么导致了这种情况,以及如何修复它吗?

所以这就是我目前正在测试的代码:

在硬刷新时,我得到:

Page loaded
Library got called
单击链接时,我只会得到:

Page loaded

你试过这样吗

<script>    
  function gfycatInit(){
    function(d, s, id){
       var js, fjs = d.getElementsByTagName(s)[0];
       if (d.getElementById(id)) {return;}
       js = d.createElement(s); js.id = id;
       js.src = "https://assets.gfycat.com/gfycat.js";
       fjs.parentNode.insertBefore(js, fjs);
     }(document, 'script', 'gfycat-js');
    }
  }
  $(gfycatInit);
  $(document).on("turbolinks:load", gfycatInit);
</script>

函数gfycatInit(){
功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id)){return;}
js=d.createElement;js.id=id;
js.src=”https://assets.gfycat.com/gfycat.js";
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“gfycat js”);
}
}
美元(gfycatit);
$(文档).on(“turbolinks:load”,gfycatInit);

将yr Gfy封装到一个函数名中,将其命名为“xxxx3”,
$(xxxx3)$(文件)。关于(“涡轮链接:加载”,XX3)试试这个,让我知道。不起作用。我在Rails 4.2.5上<代码>涡轮链接:加载
不执行任何操作。但是,如果我尝试使用
page:load
至少在名为triggers的函数中使用一个警报(“Hi”)。在进一步调试之后,似乎库确实被加载了。如果我在Crome控制台中写入gfyCollection,它确实会被识别。如果我写gfyCollection.init(),会加载gfycat,但由于某种原因视频元素中没有视频源。
<script>    
  function gfycatInit(){
    function(d, s, id){
       var js, fjs = d.getElementsByTagName(s)[0];
       if (d.getElementById(id)) {return;}
       js = d.createElement(s); js.id = id;
       js.src = "https://assets.gfycat.com/gfycat.js";
       fjs.parentNode.insertBefore(js, fjs);
     }(document, 'script', 'gfycat-js');
    }
  }
  $(gfycatInit);
  $(document).on("turbolinks:load", gfycatInit);
</script>