2013-05-13 87 views
0

我使用谷歌地圖與CMS的地圖。當我在下面添加html行(從底部起第三行)時,我的地圖無法初始化。HTML變量中的空格停止工作的谷歌地圖

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>',   
      })); 
    } 

所以,似乎谷歌地圖的JavaScript不能處理的CMS與PHP產生的空白。我不能改變CMSs的輸出,所以我怎樣才能讓谷歌地圖容忍/忽略空白?

回答

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。

+0

JSON的命令打印一堆奇怪的東西,doesent類似內容應該是」 \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n Sleaford <\/span><\/div><\/div> \ r \ n <\/div> \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n \ r \ n <\/div>「 – Evans 2013-05-13 14:08:30