在ajax中动态加载js文件

时间:2012-04-21 09:42:25

标签: javascript ajax

我想在单击按钮时动态地在ajax中包含一个js文件。我基本上想要做的是,我想在点击按钮时加载地图。为此,我使用了两个文件:

<script type="text/javascript" src="http://maps.google.com/maps?..."></script>
<script type="text/javascript" src="jquery.gmap-1.1.0-min.js"></script>

现在我想要的是,当用户点击按钮时,这两个文件会被加载,地图会在没有页面刷新的情况下显示。

此外,当用户点击按钮并加载了这两个脚本,然后第二次单击它不会再次加载脚本。

对此事的任何帮助都将受到高度赞赏。


Thnx的回复。无论如何我试图使用$ script和 RequireJs但地图无法加载。

以下是我的代码:

<script type="text/javascript" src="../js/jquery-1.7.js"></script>
<script src="../js/script.js"></script>
<script>
function googlemaps()
{
  $script('"http://maps.google.com/maps?file=api&..', 'maps', function() 
  {
      $script('../js/jquery.gmap-1.1.0-min.js', 'jquery', function() {
      $("#map").gMap({address: "USA", markers: [{address: "USA"}]});
      });
  });
}
</script>

<input name="Butoon" type="button" value="Button" onclick="javascript: googlemaps();" />

<div id="map"></div>

我得到的错误是:“G_NORMAL_MAP未定义”和 “GMap2未定义”(错误即将发生,因为 之前加载了jquery.gmap-1.1.0-min.js. http://maps.google.com/maps?file=api& ..加载)。同样的错误是 在使用RequireJs时重复。你能说出我在哪里吗? 犯了错误。

提前致谢。

1 个答案:

答案 0 :(得分:3)

您应该查看一些脚本/模块加载器,例如$criptRequireJS。基本上,他们做同样的事情,甚至更多。