Javascript Google Maps API v3 AJAX加载与库位置

Javascript Google Maps API v3 AJAX加载与库位置,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我正在做一个项目,需要在模式弹出窗口中加载谷歌地图(我使用的是api版本3) 模态的内容是使用ajax调用加载的,我想得到的是以动态方式加载googlemapapi 下面的代码让我得到了我想要的确切结果,但显然它也有一个副作用,我无法找出如何解决(可能我在整个过程中做错了什么,我只是无法找出什么)。 每一个帮助都会非常感激,我提前感谢能够澄清我想法的人 注意(1):我使用了两个不同版本的代码(一个使用url参数加载api,另一个使用google加载功能),结果是相同的 注意(2):完整的开发是使

我正在做一个项目,需要在模式弹出窗口中加载谷歌地图(我使用的是api版本3)

模态的内容是使用ajax调用加载的,我想得到的是以动态方式加载googlemapapi

下面的代码让我得到了我想要的确切结果,但显然它也有一个副作用,我无法找出如何解决(可能我在整个过程中做错了什么,我只是无法找出什么)。 每一个帮助都会非常感激,我提前感谢能够澄清我想法的人

注意(1):我使用了两个不同版本的代码(一个使用url参数加载api,另一个使用google加载功能),结果是相同的

注意(2):完整的开发是使用RubyonRails3进行的,并试图充分利用资产管道功能

代码(解释)

(1) JQUERY函数-用于动态加载外部脚本

jQuery.externalScript = function(url, options) {
  // allow user to set any option except for dataType, cache, and url
  options = $.extend(options || {}, {
    dataType: "script",
    cache: true,
    url: url
  });
  // Use $.ajax() since it is more flexible than $.getScript
  // Return the jqXHR object so we can chain callbacks
  return jQuery.ajax(options);
};
(2) JS函数-这将动态调用GoogleLoadAPI

function google_load_api_call() {
  var gmap_src = 'https://www.google.com/jsapi';
  $.externalScript(gmap_src).done(function() {
        load_google_maps_api_via_google_ajax_api_loader();
  });;
}
(3) JS函数-使用GoogleLoad动态调用GoogleMapsAPI

function load_google_maps_api_via_google_ajax_api_loader() {
  google.load("maps", "3", {other_params:'libraries=places&sensor=false', callback: function(){
    initialize(); // initialize your map in here
  }});
}
(3) JS函数-初始化谷歌地图(用作回调)

(4) RAILS JS.ERB-用于加载模态,并加载所有内容(例如地图)

$('section')。附加('locations/new\u page/locations\u new'))%>;
$(函数(){
modal_create_new_location();//此调用要显示的模态
google_load_api_call();//这将加载google load api和映射
创建新位置数据提交();//在ajax中提交表单数据
});
代码(结果和问题)

代码完美地执行了它的任务,模态加载、映射加载、库位置加载和工作。一切似乎都完全正确(在chrome或safari中,没有问题)

造成我巨大痛苦的是firefox提出的一个问题(实际上是一个警告),前提是我在google map api调用中还包括一个库(比如places或geormetry)——请参见JS函数编号(3),其中有[other_参数:'libraries=places]。如果我不加载库,firefox也不会再抱怨了,而且一切都很完美

Firefox发出的警告如下:

错误:已删除对eval(代码、scopeObject)的支持。将|与(scopeObject)eval(code)一起使用;|相反。

它指的是:

{main,places}.js

在9号线

有人能告诉我我做错了什么吗? 我不应该使用动态调用调用库?
那么,我如何使用自动完成地图功能?

没有人能帮上忙?
function initialize() {
  var mapOptions = {
    zoom: 0,
    center: new google.maps.LatLng(-34.397, 150.644),
    mapTypeId: google.maps.MapTypeId.ROADMAP
  }
  var map = new google.maps.Map(document.getElementById("map"), mapOptions);
}
$('#section').append('<%= escape_javascript(render(:partial=>'locations/new_page/locations_new')) %>');

$(function() {
   modal_create_new_location(); // This call the modal to show
   google_load_api_call(); // This load the google load api and the map
   create_new_location_data_submit(); // This submit in ajax the form data
});