0

我使用带有 CMS 的 googlemaps 地图。当我在下面添加 html 行(从底部算起的第 3 行)时,我的地图无法初始化。

    function addMarkerHotel(latlng, myTitle, html) {
        markers.push(new google.maps.Marker({
            position: latlng, 
            map: map,
            title: myTitle, 
            html: '<?php print render($content["view-cont"]); ?>',      
          }));
    }

如果我查看源代码并查看 PHP 打印的 html,我可以看到其输出中有换行符和其他空白:

    function addMarkerHotel(latlng, myTitle, html) {
        markers.push(new google.maps.Marker({
            position: latlng, 
            map: map,
            title: myTitle, 
            html: '<div>
                             <span> 
                                     some stuff
                             </span>
                           </div>',         
          }));
    }

如果我删除此空格并将其添加为纯 html,则地图可以正常工作:

    function addMarkerHotel(latlng, myTitle, html) {
        markers.push(new google.maps.Marker({
            position: latlng, 
            map: map,
            title: myTitle, 
            html: '<div><span>some stuff</span></div>',         
          }));
    }

因此,似乎 google maps javascript 无法处理 CMS 使用 PHP 生成的空格。我无法更改 CMS 输出,那么如何让谷歌地图容忍/忽略空格?

4

1 回答 1

0

谷歌地图不会容忍它。它是 javascript 引擎,它会在新行上中断,并且不会接受您的字符串具有未转义的字符串。

最简单的解决方案:

function addMarkerHotel(latlng, myTitle, html) {
    markers.push(new google.maps.Marker({
        position: latlng,
        map: map,
        title: myTitle,
        html: <?php print json_encode(render($content["view-cont"])); ?>;, 
      }));
}

所做的就是将该 php 字符串更改为完全转义的 javascript。

于 2013-05-13T11:42:55.907 回答