我有一个infowindows列表,让我们说编号为1到5。 他们有一个表格来获取方向。当我绘制路线时,信息窗应该倒塌。一切正常,我只想在函数外面使用infowindow对象
infowindow.close()在初始化时工作正常,但函数calcRoute()在initialize函数之外。我试图从功能中返回信息窗口,但不确定我哪里出错了 这是我正在做的事情的笑话
function initialize() {
........
var infowindow3 = new google.maps.InfoWindow({
content: iwindow('marker3','st pete','27.81884967015435','-82.65828121138918','727-822','4011 mlk','Fl','33703','201'),
maxWidth: 300
});
.........
return infowindow3;
}
// I have tried alerting every combination of this, window and even the function name
alert(this.window.infowindow3);
// if it would alert ObjectObject I would have it.
我知道我很亲密,希望熟悉这些地图的人可以解释一下。 非常感谢你提前。 (我花了好几天试图得到这个)
答案 0 :(得分:0)
这可能是一个愚蠢的问题,但是你保存初始化的返回值吗?当然,你没有展示你的整个代码,但那里的内容并不清楚。像这样:
var infowindow3 = initialize();
alert(infowindow3);
当然,调用initialize的典型方法是通过load事件,因此你无法以这种方式获得返回值。所以你要设置一个(在你的例子中)全局变量,并在初始化中设置该全局变量(而不是返回任何东西)。
更新
好的,在查看您链接到的页面后(在您的评论中),我看到您在定义alert(infowindow3);
之前调用了infowindow3
。您还可以在页面本身看到警告弹出“未定义”且页面尚未加载 - 您无法看到任何地图,因此initialize()
尚未运行。请记住,在页面加载期间,函数外部的任何脚本(或函数调用在“开放空间”中的函数代码)将在浏览器读取它时执行。此警报就是一个例子。您需要将该警报(或使用此变量的任何代码)放入一个在initialize()
定义之前不会被调用的函数中。这方面的例子是用onclick
调用的函数。事实上,initialize
本身就是一个例子(用onload
调用它)。