0

固定:见下文

好的。所以这是我的应用程序。

http://libwiki.heroku.com/libraries

如果您使用 Firefox 或 Safari 查看它,它会正确显示。目标是在谷歌地图上显示澳大利亚的图书馆列表。我还将“MarkerClusterer”插件放在顶部,以便标记聚集。

但是,当我在 Chrome 中查看该站点时,没有显示标记。

所以在查看代码后,我发现 Chrome 没有正确响应。这是片段。

function get_libraries()
{
  if( markerCluster != null ) { 
    markerCluster.clearMarkers(); 
  }

  get_boundaries();
  $.post( "/get_libs", { top_lat:top, right_long:right, 
                         bottom_lat:bottom, left_long:left },
                         function(data)
                         {
                           alert('hello??');
                         }
  );
}

在 get_boundaries() 方法中,我抓取了地图的边界,并将其传递给我的 rails 操作之一,这样我只能获取给定边界内的库。

反正。警告“你好”消息在 FF 和 Safari 中正确显示,但在 Chrome 中,没有消息。

为什么会这样?我还需要做些什么来满足 Chrome 的需求吗?

我已经完成了搜索并在这里找到了类似的问题(http://stackoverflow.com/questions/4086837/markerclusterer-not-working-only-in-webkit-chrome-and-safari-fine-in-firefox) ,我应用了这个建议,但没有成功。

编辑 -

好的。我尝试了 Trott 的建议,但无济于事。我刚刚比较了 Firefox 和 Chrome 之间 Rails 控制台的输出。

在 Firefox 上,我得到如下内容

++++++++++++++++++++++++++++++++ 2011-05-23 20 开始为 127.0.0.1 获取“/libraries”: 42:30 +1000 LibrariesController#index 处理为 HTML 渲染库/_header.rhtml (0.7ms) 渲染库/_footer.rhtml (0.3ms) 布局/库中渲染库/index.html.erb (5.7ms) 完成 200 9 毫秒内确定(查看:8.2 毫秒 | ActiveRecord:0.0 毫秒)

在 2011-05-23 20:42:31 +1000 开始 POST "/get_libs" for 127.0.0.1 +1000 由 LibrariesController#get_libs 作为参数处理:{"top_lat"=>"-3.8857201725875936", "right_long"=>"159.3671875" , "bottom_lat"=>"-46.20993271642981", "left_long"=>"106.6328125"} 库负载 (1238.5ms) 选择 "libraries".* 从 "libraries" WHERE (latitude < -3.8857201725875936 AND latitude > -46.209932716429 AND(8经度> 106.6328125和经度<159.3671875)或(经度> 106.6328125和经度> 159.3671875和经度> 0 and 106.6328125> 159.3671875)或(经度++++++++++++++++++++++++++++++++

我想上面的重要一点是,在 FF 上,正在执行 jQuery“post”方法。但是,当我去 Chrome 时,我只能在下面。

++++++++++++++++++++++++++++++++ 2011-05-23 20 开始为 127.0.0.1 获取“/libraries”: 35:44 +1000 LibrariesController#index 处理为 HTML 渲染库/_header.rhtml (25.9ms) 渲染库/_footer.rhtml (0.3ms) 在布局/库中渲染库/index.html.erb (59.1ms) 完成 200 90 毫秒内确定(查看次数:89.1 毫秒 | ActiveRecord:0.0 毫秒)++++++++++++++++++++++++++++++++

为什么 Chrome 不执行我的 jQuery “post”?

4

3 回答 3

1

当我转到您为您的应用程序提供的链接时,从控制台中看到的内容来看,您正被 jQuery 提出的 Rails 3 问题所困扰。在http://www.justinball.com/2011/03/11/get-jquery-working-with-ruby-on-rails-3/阅读它。

根据该页面,解决方案是:

事实证明,由于我使用 jQuery,我需要为 jQuery 获取 rails.js 文件。有一个宝石将它包裹起来:

https://github.com/rails/jquery-ujs

您也可以只获取 javascript 并将其转储到 rails.js: https ://github.com/rails/jquery-ujs/raw/master/src/rails.js

于 2011-05-22T02:39:58.510 回答
0

好的。这里是。某些 Javascript 保留字在 Chrome 中是不允许的。

http://www.quackit.com/javascript/javascript_reserved_words.cfm

于 2011-05-23T11:32:37.357 回答
0

固定:嗯。这完全出乎意料。反正。我使用关键字“top”、“left”、“right”和“bottom”作为变量名。看起来 Chrome 不喜欢这个。这是因为还有其他与 Chrome 冲突的 JS 文件吗?我试图进行一些搜索,但找不到任何东西。但无论如何,现在,我将变量名更改为“top_bound”、“left_bound”等。现在它的行为符合我的预期。

于 2011-05-23T11:18:27.793 回答