谷歌Api Asynch回调失败

时间:2015-07-08 10:18:00

标签: javascript jquery google-maps xmlhttprequest

我收到的请求内容为:

function httpGet(theUrl)
{
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    alert(xmlHttp.status);
    return xmlHttp.responseText;
}

通过以下方式将内容解析到我的新网站后

$Test = httpGet("www.content.com");
document.getElementById("div_content").innerHTML = document.getElementById("div_content").innerHTML + $Test;

在此之后我将使用google api asynch进行回调,但回调函数出现错误

loadScriptFunc('https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&callback=loadScript');

错误是:window.loadScript is not a function

我已经用jquery $ .get做了这个,这对我有用。

编辑: 该函数加载如下:

if(document.getElementById('map_canvas')){
            loadScriptFunc('https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&callback=loadScript');
          } 

该功能本身如下:

function loadScriptFunc(url) 
{
   var head = document.getElementsByTagName('head')[0];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = url;
   head.appendChild(script);
}   

loadScript函数看起来像这样:

function loadScript() {
           var head = document.getElementsByTagName('head')[0];
           var script = document.createElement('script');
           script.type = 'text/javascript';
           script.src = 'http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox.js';
           head.appendChild(script);
           bLoaded = true;
           window.setTimeout("activateMap()", 100);
         }  

loadScript函数属于我的地图的模板文件。本代码已经为我使用了Jquerys- $ .Get函数相同的回调等等。但我不允许使用jquery ......

EDIT2: 我在互联网上找到了一些东西,我想我知道问题是什么。

  

我在jQuery.load()方面取得了成功,因为它执行了获取内容中存在的JavaScript代码块和资源。对不起,没有这个演示!

我想我无法执行XMLHttpRequest中的代码,任何人都知道另一个js方法从Url获​​取一些内容吗?

1 个答案:

答案 0 :(得分:0)

啊,我知道发生了什么事。 它的谷歌地图告诉你它无法找到loadScript()。

所以,你告诉谷歌地图:maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&callback=loadScript

看看会发生什么;我告诉谷歌地图改为调用初始化。

<style>
  #map_canvas {width: 400px; height: 400px;}
</style>
<div id="map_canvas"></div>
<script>
function initialize() {
  var my_position = new google.maps.LatLng(50.5, 4.5);
  var map = new google.maps.Map(document.getElementById('map_canvas'), {
    center: my_position,
    zoom: 7
  });
}
function loadScriptFunc(url) {
  var head = document.getElementsByTagName('head')[0];
  var script = document.createElement('script');
  script.type = 'text/javascript';
  script.src = url;
  head.appendChild(script);
}
if(document.getElementById('map_canvas')) {
  loadScriptFunc('https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&callback=initialize');
}
</script>