javascript - 将 javascript 行添加到以 slim 编写的 ruby​​ 站点

标签 javascript jquery ruby-on-rails ruby

我得到了一个 javascript 行,它调用一个 javascript 文件,该文件是由一家名为 walkme 的公司制作的。

我有一个 app/assets/javascript/application.js 文件,它调用我用于该网站的所有 jquery。例如它包含:

require feed

当有人在 feed 页面上时,它会调用 feed.js。我希望在调用此代码的同时也调用 walkme.js

我正在寻找一种方法来添加此<script ...编写使用 slim 和 jquery 的 ruby​​ 站点的代码。

<script type="text/javascript">(function() {var walkme = document.createElement('script'); walkme.type = 'text/javascript'; walkme.async = true; walkme.src = 'https://cdn.walkme.com/thewalkme.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(walkme, s); window._walkmeConfig = {smartLoad:true}; })();</script>

我尝试过一种直率的方式,即在与 feed.js 相同的位置制作 walkme.js 并将其放在 <script ... 中。该文件中的代码,同时添加必要的 require walkme代码,但这似乎没有任何作用。

一些信息:

  • Ruby on Rails
  • ruby 2.1.7p400
  • ubuntu 14.04 LTS 服务器
  • 某些文件名为 *.html.slim

正如您可能知道的那样,我并没有编写所有 ruby​​ 代码,也不是 ruby​​、javascript 或 jquery 方面的专家。

如果这只是一个 html 网站,我认为只需将代码行添加到 header 即可。

最佳答案

大多数情况下,Javascript 是在页面加载完成后调用的,因为您很可能想要操作 DOM。

因此,您要么不想在文档头部调用脚本,除非脚本中有 document.ready

回答你的问题,如果你想要以下脚本:

function(){
  var walkme = document.createElement('script');
  walkme.type = 'text/javascript';
  walkme.async = true;
  walkme.src = 'https://cdn.walkme.com/thewalkme.js';
  var s = document.getElementsByTagName('script')[0];
  s.parentNode.insertBefore(walkme, s);
  window._walkmeConfig = {smartLoad:true};
};

仅在您应用程序的 feed 页面上可用,

您可以将此函数作为一个命名函数,放在单独的文件中(例如 feed.js.coffee),并在您的 slim View 页面中调用该函数,如下所示:

//feed.js.coffee:
@feed = ->
  walkme = document.createElement('script')
  walkme.type = 'text/javascript'
  walkme.async = true
  walkme.src = 'https://cdn.walkme.com/thewalkme.js'
  s = document.getElementsByTagName('script')[0]
  s.parentNode.insertBefore walkme, s
  window._walkmeConfig = smartLoad: true
  return

在您看来:

/feed.html.slim:
...
  your codes...
...
coffeeview:
  feed

关于javascript - 将 javascript 行添加到以 slim 编写的 ruby​​ 站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34114825/

相关文章:

javascript - 如何知道图像是否无法在 javascript 中加载?

javascript - 传递给 setTimeout 的函数变量不起作用?

javascript - 查询函数?

javascript - 如何在 jquery datepicker 中动态关闭日期?

ruby-on-rails - 关于utf8的Tire::Search::SearchRequestFailed错误

javascript - 无法使用 Bootstrap Carousel 读取未定义的属性 'offsetWidth'

javascript - 如何在存储 Laravel 后显示新模式

javascript - 想要删除一个类并在兄弟标签中添加 SlideUp

ruby-on-rails - 在 Ruby on Rails 中添加新页面

ruby-on-rails - 有没有办法让页码作为rails中的字母