【问题标题】:rails ujs - javascript not executingrails ujs - javascript没有执行
【发布时间】:2011-11-19 23:58:45
【问题描述】:

这是一个很奇怪的问题。我有一个 Rails 应用程序,我在其中使用 UJS 将页面上的一个部分替换为另一个。最近,它停止工作,所以我开始在整个过程中记录,看看它在哪里坏了。这是我发现的:

  • 单击链接后,rails 控制台告诉我所有内容都已渲染,包括所有部分,并返回 200 OK。
  • A 放入控制器动作返回正常
  • 放入respond.do块返回正常
  • 放入 .js.erb 文件返回正常

这意味着它可以一直运行 .js.erb 文件并无错误地评估 ruby​​。 但奇怪的是 - 没有任何 javascript 正在执行。当我在 .js.erb 文件中运行警报('hello?')时,它没有执行。

以前有人遇到过这个问题吗?它会运行 erb 评估而不是 js,这似乎非常奇怪。并且js控制台也没有出现错误。

据我所知:清除缓存,重新启动浏览器,重新启动 rails 应用程序,没有任何改变。

示例代码:

# view
link_to 'example', some_path, :remote => true

# controller
respond_to do |format|
  format.js
end

# .js.erb file
alert('this never shows up');
<% puts 'this shows up in the rails console' %>

非常感谢任何能够对这个奇怪问题有所了解的人!

【问题讨论】:

  • "并且js控制台也没有出现错误。"
  • 对不起;我会自动忽略以连词开头的句子。
  • 你说它最近停止工作了——你有没有可能在你的页面上添加了一些干扰返回的 JS?
  • 如果您使用的是chrome,您还可以看到浏览器收到的内容:看起来可以吗?
  • 是的,我看到它出现在 XHR 下的控制台中 - 状态为 200 OK,它显示 .js.erb 文件中的所有 javascript 作为响应:/(这是截图- cl.ly/BxmT - 我录进来了)

标签: javascript ruby-on-rails ujs


【解决方案1】:

js 有没有可能出错? ajax 请求在 js 控制台中没有正常显示。 http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

(类似的环境在我的机器上运行良好)

【讨论】:

  • 哈哈你的权利,它显示在 chrome 检查器的网络选项卡中(在 XHR 下,正如我提到的)。 JavaScript 控制台仍然为空。这是一个很棒的帖子,我会检查一下,看看是否能解决它!谢谢~
  • 在这篇文章中,它说要检查它是否被“作为 JS”处理 - 对我来说,它说它正在被作为 JS 处理。所以我点击了你提供的备用链接,它给了我一个 404 错误。
  • 是的,我也意识到了这一点 :( 但是文章的底部提供了一种方法来测试渲染的 js 是否在 firebug 中出现错误。这可能会让您对正在发生的事情有所了解。
  • 再读一遍文章说“如果“as JS”位在那里,那么我们遇到的是一个 JavaScript 问题(下面将解决)。所以无论如何你都不应该需要链接上的页面,只需要文章。
  • 非常感谢这里的指导 - 奇怪的是,我打开了 firefox 来测试它,它确实有效。然后我重新启动了 chrome,并做了一些新的条目。它适用于所有新的整体,而不是我之前测试的这三个特定的。这有多奇怪?无论哪种方式,我认为这或多或少已经解决了,尽管我会看看我是否能弄清楚这三个奇怪的例子有什么问题。
猜你喜欢
  • 2013-08-08
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多