문제

수정됨:아래를 참조하세요

좋아요.여기 내 앱이 있습니다.

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() 메서드에서 지도의 경계를 잡아서 레일 액션 중 하나에 전달하여 주어진 경계 내의 라이브러리만 가져옵니다.

그래도.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에서는 아래와 같은 결과가 나타납니다.

++++++++++++++++++++++++++++++ ++++++++ "/Libraries for 127.0.0.1 2011-05-23 20 : 20 : 42:30 +1000 Librariescontroller#index html rendered libraries/_header.rhtml (0.7ms) 렌더링 된 라이브러리/_footer.rhtml (0.3ms) 렌더링 된 라이브러리/index.html.erb (200). 9ms에서 확인 (보기 :8.2ms | ActiveRecord :0.0ms)

2011-05-23에서 127.0.0.1에 대한 "/get_libs"시작 게시물 Controller#get_libs에 의한 처리 : 매개 변수 : 매개 변수 :{ "top_lat"=> "-3.8857201725875936", "right_long"=> "159.3671875", "attam_lat"=> "-46.20993271642981", "left_long"=> "106.6328125"} unsecraries (1238.5ms) ". * "라이브러리"에서 (위도 <-3.8857201725875936 및 위도> -46.20993271642981 및 ((경도> 106.6328125 및 경도 <159.3671875) 또는 (Longitude> 106.6328125 및 Longitude> 159.36775 및 10672.3672 및 5> 159.3671875) 또는 (경도 <106.6328125 AND longitude < 159.3671875 AND longitude < 0 AND 106.6328125 > 159.3671875))) ++++++++++++++++++++++++++++++++

위의 중요한 부분은 FF에서 jQuery "post" 메서드가 실행된다는 것입니다.그런데 크롬으로 가보니 아래만 나오네요.

++++++++++++++++++++++++++++++ ++++++++ "/Libraries for 127.0.0.1 2011-05-23 20 : 20 : 35:44 +1000 Librariescontroller#index html rended libraries/_header.rhtml (25.9ms) 렌더링 된 라이브러리/_footer.rhtml (0.3ms) 렌더링 된 라이브러리/index.html.erb (59.1ms)가 완료되었습니다. 90ms (보기 :89.1ms | ActiveRecord :0.0ms) +++++++++++++++++++++++++++++++++++++++++++++++

Chrome이 내 jQuery "게시물"을 실행하지 않는 이유는 무엇입니까?

도움이 되었습니까?

해결책

앱에 제공한 링크로 이동했을 때 콘솔에 표시되는 내용으로 판단하면 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

다른 팁

수정됨:흠.이것은 전혀 예상치 못한 일이었습니다.그래도.나는 변수 이름으로 "top", "left", "right" 및 "bottom" 키워드를 사용하고 있었습니다.Chrome에서는 이 기능을 좋아하지 않는 것 같습니다.Chrome과 충돌하는 다른 JS 파일이 있기 때문인가요?검색을 좀 해보았지만 아무것도 찾을 수 없었습니다.하지만 어쨌든 지금은 변수 이름을 "top_bound", "left_bound" 등으로 변경했습니다.그리고 이제 제가 예상한 대로 작동하고 있습니다.

좋아요.여기있어.일부 Javascript 예약어는 Chrome에서 엄격하게 허용되지 않습니다.

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top