0

修正済み:以下を参照

わかった。これが私のアプリです。

http://libwiki.heroku.com/libraries

FirefoxまたはSafariで表示すると、正しく表示されます。目的は、オーストラリアの図書館のリストをGoogleマップに表示することです。また、「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アクションの1つに渡して、指定された境界内のライブラリのみを取得します。

とりあえず。FFとSafariではアラート「hello」メッセージが正しく表示されますが、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で127.0.0.1のGET"/libraries"を開始しました20: 42:30 +1000 HTMLとしてのLibrariesController#indexによる処理レンダリングされたlibrary / _header.rhtml(0.7ms)レンダリングされたlibrary / _footer.rhtml(0.3ms)レイアウト/ライブラリ内のレンダリングされたlibrary / index.html.erb(5.7ms)完了200 9msでOK(ビュー:8.2ms | ActiveRecord:0.0ms)

2011-05-2320:42:31+1000で127.0.0.1のPOST"/get_libs"を開始しました。パラメーターとしてのLibrariesController#get_libsによる処理:{"top_lat" => "-3.8857201725875936"、 "right_long" => "159.3671875" 、"bottom_lat" => "-46.20993271642981"、 "left_long" => "106.6328125"}ライブラリの読み込み(1238.5ms)SELECT"libraries"。*FROM "libraries" WHERE(緯度<-3.8857201725875936AND緯度>-46.20993271642981 AND((経度>106.6328125AND経度<159.3671875)OR(経度>106.6328125AND経度>159.3671875AND経度>0AND 106.6328125> 159.3671875)OR(経度<106.6328125AND経度<159.3671875AND経度<0AND 106.6328125> 159.3671875)))++++ ++++++++++++++++++++++++++++

上記の重要な点は、FFでjQueryの「post」メソッドが実行されていることだと思います。しかし、Chromeに行くと、下にしか表示されません。

++++++++++++++++++++++++++++++++2011-05-23で127.0.0.1のGET"/libraries"を開始しました20: 35:44 +1000 HTMLとしてのLibrariesController#indexによる処理レンダリングされたlibrary / _header.rhtml(25.9ms)レンダリングされたlibrary / _footer.rhtml(0.3ms)レイアウト/ライブラリ内のレンダリングされたlibrary / index.html.erb(59.1ms)完了200 90msでOK(ビュー:89.1ms | ActiveRecord:0.0ms)++++++++++++++++++++++++++++++++++

ChromeがjQueryの「投稿」を実行しないのはなぜですか?

4

3 に答える 3

1

あなたがアプリに提供しているリンクにアクセスしたときにコンソールに表示されているものから判断すると、jQueryで発生する可能性のあるRails3の問題に悩まされています。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

修正済み:うーん。これはまったく予想外でした。とりあえず。変数名として「top」、「left」、「right」、「bottom」というキーワードを使用していました。Chromeはこれが気に入らないようです。Chromeが競合する他のJSファイルがあるためですか?検索しようとしましたが、何も見つかりませんでした。しかし、とにかく、今のところ、変数名を「top_bound」、「left_bound」などに変更しました。これで、期待どおりに動作するようになりました。

于 2011-05-23T11:18:27.793 に答える
0

わかった。ここにあります。一部のJavascriptの予約語は、Chromeでは厳密には許可されていません。

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

于 2011-05-23T11:32:37.357 に答える