【问题标题】:Dynamically change google maps script src with select使用 select 动态更改谷歌地图脚本 src
【发布时间】:2012-08-12 01:14:05
【问题描述】:

我想在单击我的下拉选项之一时更改 Google 地图脚本 src,因为在我的页面上搜索邮政编码时遇到问题。为了获得正确的结果,我相信我需要在 src url 中使用 Google 的区域本地化“&region=”。(https://developers.google.com/maps/documentation/javascript/basics#Localization)

我已经在 <head> 标签中加载了我的谷歌地图 API:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

我创建了一个下拉列表

<select id="country">  
   <option value="sel">Select</option>
   <option value="DK">Denmark</option>
   <option value="NL">Netherlands</option>
   <option value="SE">Sweden</option>
</select>

我希望每次单击其中一个选项时更改 google maps 脚本 src。

例如:如果我单击丹麦,则 src 将更改为: http://maps.googleapis.com/maps/api/js?sensor=false&amp;region=DK

我通过查看Dynamically change the src of a script tag 尝试了一些东西 但我仍然不知道如何使它工作。

目前我有这个:

$('#country option').click(function(e) {
    e.preventDefault();
    var region = $(this).attr('value');
    var url = 'http://maps.googleapis.com/maps/api/js?sensor=false&region=' + region;
});

我真的是 jQuery 和 javascript 的新手,所以我想也许我可以在这里得到一些帮助。

【问题讨论】:

    标签: javascript jquery html google-maps


    【解决方案1】:

    您不应该那样做,因为删除脚本元素不会删除脚本创建的方法、变量等。你会收到这样的警告:

    警告:您已在此页面上多次包含 Google Maps API。这可能会导致意外错误

    相反,您应该在请求中使用区域参数,例如地理编码时

    【讨论】:

    • 好的,我明白了...但是如果我想从下拉菜单中的选定选项中保存用户的区域,我该怎么做?现在geocoder.geocode( { 'address': address, 'region': 'DK' } 工作。所以我想用变量区域改变'DK'会起作用,但首先我需要在变量中保存一些数据,但我不知道如何:/
    【解决方案2】:

    如果您尝试根据用户选择为您的页面动态加载新脚本,那么您可能需要查看getScript。只是尝试更改该元素的值不会有任何不同,因为它已经为您的页面加载了。

    实际上,如果您想要的脚本完全依赖于用户在下拉菜单中的选择,我建议您将其完全从页面中删除,并在用户做出选择后才加载它。

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 2016-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多