簡體   English   中英

如何解決此JavaScript語法錯誤?

[英]How can I fix this JavaScript syntax error?

這讓我感到困惑。 我正在使用Google Map的地址編碼來查找位置。 我正在嘗試使用此處的示例,該示例來自Google,但對我不起作用。


錯誤:

http://maps.gstatic.com/intl/zh_CN/mapfiles/159e/maps2.api/main.js
線174
var point = new GLatLng(,);


碼:

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key='.$config['locations.gMaps.key'].'" type="text/javascript"></script>
<script src="http://www.google.com/uds/api?file=uds.js&v=1.0&key='.$config['locations.gMaps.key'].'" type="text/javascript"></script>
<script src="http://www.google.com/uds/solutions/localsearch/gmlocalsearch.js" type="text/javascript"></script>

<style type="text/css">
    @import url("http://www.google.com/uds/css/gsearch.css");
    @import url("http://www.google.com/uds/solutions/localsearch/gmlocalsearch.css");
</style>
<script type="text/javascript">

    function addListener(element, baseName, handler) {
        if (element.addEventListener)
            element.addEventListener(baseName, handler, false);
        else if (element.attachEvent)
            element.attachEvent("on"+baseName,handler);
    }

    var map'.$num.';    

    function initialize'.$num.'() 
    {

        if (GBrowserIsCompatible()) 
        {
            map'.$num.' = new GMap2(document.getElementById("google_map'.$num.'"),{mapTypes:[G_HYBRID_MAP]});
            var point = new GLatLng('.$row->LocationLat.','.$row->LocationLon.');
            map'.$num.'.setCenter(new GLatLng('.$row->LocationLat.','.$row->LocationLon.'),4);
            var mapControl = new GMapTypeControl();
            map'.$num.'.addControl(mapControl);
            map'.$num.'.addControl(new GLargeMapControl());
            map'.$num.'.addControl(new GOverviewMapControl());
            map'.$num.'.enableDoubleClickZoom();
            map'.$num.'.enableScrollWheelZoom();
            var bounds = new GLatLngBounds;

            var myIcon = new GIcon();
            myIcon.image = "http://www.google.com/mapfiles/marker.png";
            myIcon.iconAnchor = new GPoint((markerImage1.width/2),markerImage1.height);



            bounds.extend(point);
            setBounds(map'.$num.',bounds);                              

            var address = "' . $address . '";


            var geocoder = new GClientGeocoder();
            showAddress(address, geocoder);

        }
    }

    function showAddress(address, geocoder) {
      geocoder.getLatLng(
        address,
        function(point) {
          if (!point) {
            alert(address + " not found");
          } else {
            map'.$num.'.setCenter(point, 13);
            var marker = new GMarker(point);
            map'.$num.'.addOverlay(marker);
            marker.openInfoWindowHtml(address);
          }
        }
      );
    }


    function setBounds(map'.$num.',bounds) 
    {
        map'.$num.'.setZoom(15);
        map'.$num.'.setCenter(bounds.getCenter());
    }                   

    function chargement() 
    {   
        markerImage1 = new Image(); 
        markerImage1.src = "http://www.google.com/mapfiles/marker.png";
        setTimeout("initialize'.$num.'()", 500); 
    }

    addListener(window, "load", chargement);
</script>

我的代碼是由PHP生成的,因此當出現'時,表示我正在打開或關閉保存JavaScript的字符串。

也許我不明白,但是

var point = new GLatLng(,);

無效的javascript

應該是

var point = new GLatLng(param1, param2);

要么

var point = new GLatLng();

要么

var point = new GLatLng(null,null);

...取決於GLatLng構造函數是什么

這個說法:

var point = new GLatLng(,);

不正確,因為未指定緯度或經度編號。 這是因為此語句:

var point = new GLatLng('.$row->LocationLat.','.$row->LocationLon.');

是不正確的。 我會嘗試類似的東西:

var point = new GLatLng(<?php echo $row->LocationLat . ',' . $row->LocationLon; ?>);

如果這不起作用,則$row->LocationLat$row->LocationLon可能為空。

問題1-函數showAddress()未關閉。

問題2-您的地圖對象需要在函數之外定義,以便showAddress()可以訪問它。

問題3- showAddress()中對地圖對象的引用不正確

首先檢查要打印到html + js中的php字符串。 php生成htm並將其發送給用戶,目前是htm + javascript問題。 它看起來像是一個Javascript問題,但您實際上一開始就用php生成了錯誤的語法,因為您嘗試打印有問題的內容,並且打印了空白。 請始終注意這一點,請確保打印出什么內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM