1

無論何時單擊標題鏈接,我都會收到JavaScript錯誤;本質上這條線:document.write('<a href="javascript:myclick(' + (i) + ')">' + '[[Title]]' + '<\/a><br>'); 這是令人沮喪的主要方式,因爲除IE7/8以外的所有其他瀏覽器沒有任何問題。然而,我們的大部分訪客都使用IE7/8。 這個問題只發生在IE瀏覽器,其他一點,但是當我調試它是一個JavaScript錯誤,據我所知。IE7/8 Javascript錯誤

Thanks.. 

這裏的信息:

IE8調試:

Line: 1 
Error: Function expected 

myclick(3) 
Function expected JScript - window script block, line 1 character 1 

IE9調試(在IE8模式):

myclick(7) 
SCRIPT5007: The value of the property 'myclick' is null or undefined, not a Function object script block (4), line 1 character 1 

這是1號線:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><meta http-equiv="X-UA-Compatible" content="IE=edge" > 

這是完整的腳本代碼;谷歌地圖:

<script type="text/javascript"> 
    var MapCenter = new google.maps.LatLng(41.52369114627216,-90.57780953284453) 
    var i = -1; 
    var Lat=new Array(); 
    var Long=new Array(); 
    var MarkerTitle=new Array(); 
    var Display=new Array(); 
    var myclick = new Array(); 
    var gmarkers = new Array(); 
</script> 

<script type="text/javascript"> 
    var i = i + 1; 
    Lat[i] = [[Lat]]; 
    Long[i] = [[Long]]; 
    MarkerTitle[i] = '[[Title]]'; 
    Display[i] = '<table><tr><td><div style="color: #a41d21;font-size: 13px; font-weight: bold;">[[Title]]</div></td></tr><tr><td>[[Address]]<br />[[City]], [[State]] [[Zip]]</td></tr><tr><td>[[Phone]]</td></tr><tr><td><a href="mailto:[[Email]]">[[Email]]</a></td></tr><tr><td><a href="[[WebURL]]" target="_blank">[[WebURL]]</a></td></tr></table>'; 
</script> 

<div id="LeftArea" style="width: 220px; float: left; border-bottom: 1px solid #dedede; padding: 5px 0 5px 0;"> 
    <div style="color: #a41d21;font-size: 13px; font-weight: bold;"> 
    <script type="text/javascript"> 
     document.write('<a href="javascript:myclick(' + (i) + ')">' + '[[Title]]' + '<\/a><br>'); 
    </script> 
    </div> 
    <div> 
    [[Address]]<br /> 
    [[City]], [[State]] [[Zip]] 
    </div> 
</div> 

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
    function initialize() { 
    myclick = function myclick(i) { 
     google.maps.event.trigger(gmarkers[i], "click"); 
    } 

    var myOptions = { 
     zoom: 12, 
     center: MapCenter, 
     zoomControl: true, 
     zoomControlOptions: { 
     position: google.maps.ControlPosition.TOP_RIGHT, 
     style: google.maps.ZoomControlStyle.SMALL 
     }, 
     mapTypeControl: true, 
     mapTypeControlOptions: { 
     style: google.maps.MapTypeControlStyle.DROPDOWN_MENU 
     }, 
     scaleControl: true, 
     scaleControlOptions: { 
     position: google.maps.ControlPosition.TOP_CENTER 
     }, 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
    }; 

    var map = new google.maps.Map(document.getElementById('map_canvas'),myOptions); 

    for (var i = 0, length = 50; i < length; i++) { 
     var latLng = new google.maps.LatLng(Lat[i],Long[i]); 
     var InfoWindow = new google.maps.InfoWindow(); 

     var marker = new google.maps.Marker({ 
     position: latLng, 
     map: map, 
     title: MarkerTitle[i], 
     html: Display[i] 
     }); 

     gmarkers[i] = marker; 

     google.maps.event.addListener(marker, 'click', function() { 
     InfoWindow.setContent(this.html); 
     InfoWindow.open(map, this); 
     }); 
    } 

    google.maps.event.addListener(map, 'click', function() { 
     InfoWindow.close(); 
    }); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

回答

1

我不認爲你需要在這個變量定義的函數名稱:

myclick = new function(i) { 
     google.maps.event.trigger(gmarkers[i], "click"); 
} 
+0

謝謝MrSlayer;這解決了這個問題。 – user1424532

0

由以下

<script type="text/javascript"> 
document.write('#' <a href="#" onclick="javascript:myclick(' + (i) + ')">'> + '[[Title]]' + '<\/a><br>'); 
</script> 
更換

<script type="text/javascript"> 
document.write('<a href="javascript:myclick(' + (i) + ')">' + '[[Title]]' + '<\/a><br>'); 
</script>