代码之家  ›  专栏  ›  技术社区  ›  ceejayoz

google maps api-gmarker.openinfowindowhtml()停止工作

  •  1
  • ceejayoz  · 技术社区  · 16 年前

    我有一个谷歌地图突然停止工作,没有明显的原因(我已经几个月没有接触到代码了,但是我们的CMS的包装代码可能已经改变了,没有公司告诉我)。

    http://www.democratandchronicle.com/section/builder

    (对地图外的讨厌HTML感到抱歉,大部分来自我们的公司家长…)

    我把范围缩小到 drawMarker 功能:

    GEvent.addListener(marker, 'click', function() {
      marker.openInfoWindowHtml(html, { maxWidth: 500 });
    });
    

    值得注意的:

    • alert(html); 为信息窗口显示正确的HTML。
    • HTML变量中的HTML确实有效。
    • 单击事件正在触发(由确认 alert('test'); 在它里面)
    • 我在同一个站点上托管的另一个地图 works fine 尽管代码相似。
    • 在Firebug或IE中没有我能看到的javascript错误。

    我在这上面撞了好一阵子。我错过了什么?

    5 回复  |  直到 16 年前
        1
  •  1
  •   Daniel Beardsley    16 年前

    我曾多次遇到过谷歌地图API的随机问题,而且不止一次通过返回一个API版本解决了这个问题。例如,如果你的谷歌地图api javascript包含字符串是这样的 http://maps.google.com/maps?file=api&v=2.xd&key=XXXXX 改变 2、X 回到一些版本(工作时的版本),比如 二点一三二 或者什么

        2
  •  1
  •   Keith Fitzgerald    16 年前

    尝试:

    GEvent.addListener(marker, 'click', function() {
      this.openInfoWindowHtml(html, { maxWidth: 500 });
    });
    

    记住,对象“marker”的范围超出了您的功能范围。

        3
  •  1
  •   Stu    13 年前

    我最近遇到了这个问题,事件处理程序确实运行了,等等。结果发现页面上有两个google maps<script>标记实例。拆下一个固定它。

        4
  •  0
  •   Diodeus - James MacFarlane    16 年前

    尝试强制javascript从HTML中生成一个新变量:

    GEvent.addListener(marker, 'click', function() {
    marker.openInfoWindowHtml(html+'', { maxWidth: 500 });
    });
    
        5
  •  0
  •   ceejayoz    16 年前

    这就解决了。我怀疑API的更新会破坏一两个版本。

    推荐文章