【问题标题】:Rails 5: Javascript not loadingRails 5:Javascript未加载
【发布时间】:2017-09-17 16:33:30
【问题描述】:

app/assets/javascripts/geolocation.js 中有一些未加载的 javascript。检查控制台的结果绝对没有发生任何事情。有什么想法我可能做错了吗?

这就是我正在尝试的:

地理位置.js

var x = document.getElementById("demo");

function getLocation() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else {
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}

function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude +
        "<br>Longitude: " + position.coords.longitude;
}

app/views/search/search.html.erb

<button onclick="getLocation()">Try It</button>

<p id="demo"></p>

<% content_for :javascript_includes do %>
   <%= javascript_include_tag "geolocation.js" %>
<% end %>

application.html.erb

<%= javascript_include_tag 'application', "data-turbolinks-track" => true %>

应用程序.js

//= require rails-ujs
//=require jquery
//=require jquery_ujs
//=require jquery.turbolinks
//=require turbolinks-compatibility
//=require turbolinks
//= require underscore
//= require gmaps/google
//= require_tree .

【问题讨论】:

  • x 可能还不存在。将该文件的全部内容包装在 DOMContentLoaded 处理程序中。
  • 不需要content_for 的收益吗?
  • 感谢@Sergio Tulentsev 提供的信息...我一直在尝试使用 DOMContentLoaded 处理程序来包装 javascript,但我无法做到。

标签: javascript ruby-on-rails ruby


【解决方案1】:

如果 JavaScript 文件位于 Rails 3.x 的任何资产文件夹(assetsvendorbundle)中,您可以通过添加以下内容将脚本添加到您的 html.erb 文件中:

<%= javascript_include_tag('test.js') %>

【讨论】:

  • 我将此&lt;%= javascript_include_tag('geolocation.js') %&gt; 添加到application.html.erb,但没有任何反应。还检查了控制台是否有任何操作,但那里也没有任何反应。奇怪
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多