2013-06-28 16 views
0

我有問題設定標記位置和地圖中心,以「屬性的值無效」錯誤或「無效值時,屬性」錯誤,例如:值無效具有兩個電平的iframe上下文

Error: Invalid value for property : (13.7323691218542, 100.64347976627096) Source File: http://maps.gstatic.com/intl/en_us/mapfiles/api-3/13/5/main.js Line: 26

這是基於Firefox和Chrome

測試

我頂HTML包含: JavaScript函數 「move_it()」 一個iframe:由CGI源(ID 「mapIframe」)(nwfMap.cgi)

與 「mapIframe」 iframe中的cgi包含: 甲VAR mapNwf用於地圖 甲VAR markerMe用於標記 的iframe(ID: 「myInfoIframe」)通過一個cgi來源(nwfSetInfo.cgi)

與「 myInfoIframe「iframe cgi包含: 對頂層HTML 中定義的函數」move_it()「的調用此調用旨在將標記(markerMe)移動到特定位置 並且還將地圖(mapNwf)中心設置爲相同的特定位置

對「move_it」的調用執行正常,直到試圖執行時爲止: mrk.setPosition(pos);

mp.setCenter(pos); 

它在這裏我遇到了「屬性值無效...」錯誤。 前次執行中的:

alert('mp = [' + mp.getCenter() + ']'); and 
alert('mrk = [' + mrk.getPosition() + ']'); 

都OK用正確的位置(緯度/經度)顯示值(圖中心和標誌位置)

所以現在的問題是,如何來getCentergetPosition工作了相同的地圖和標記變量,但setCenter和已失敗?

如果getCentergetPosition回來了正確的數據,它表明沒有可變的上下文問題,對不對?

但是,那麼我怎麼只能「讀」,而不是通過這些變量「設置」值?

它會與頂級HTML,iframe中以及iframe的iframe中google行的外觀相關: ? 重複和嵌套級別導致一些谷歌地圖上下文問題導致我的問題?

非常感謝您的任何建議!以下是爲您的檢查和調查相關的代碼部分:

頂部HTML的「mapIframe」 IFRAME(由nwfMap產生的

<html> 
........ 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"> </script> 
<script language="JavaScript"> 
function move_it(slat, slng) { 
    var ifrm = document.getElementById('mapIframe'); 
    var mp = ifrm.contentWindow.mapNwf; 
    var mrk = ifrm.contentWindow.markerMe; 
    var pos = new google.maps.LatLng(slat,slng); 
    alert('mp = [' + mp.getCenter() + ']'); 
    alert('mrk = [' + mrk.getPosition() + ']'); 
    alert('pos = [' + pos + ']'); 
    mrk.setPosition(pos); 
    mp.setCenter(pos); 
} 
</script> 
......... 
<div id="nwfMap"> 
<iframe width=100% height=520 frameBorder=0 src="nwfMap.cgi" name="mapIframe" id="mapIframe" scrolling=no></iframe> 
</div> 
........ 
</html> 

相關部分的相關部分。CGI)的 「myInfoIframe」 iframe中(由nwfSetInfo.cgi生產)

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">  </script> 
<script type="text/javascript"> 
    parent.parent.move_it(13.7323691218542, 100.643479766271); 
</script> 

回答

0

的問題是現在固定,通過移動 「move_it()」 函數定義的

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
<script type="text/javascript"> 
var mapNwf = new google.maps.Map(document.getElementById('mapCanvas'), { 
    zoom: 8, 
    mapTypeId: google.maps.MapTypeId.HYBRID 
}); 
var latLngPre = new google.maps.LatLng(0.0, 0.0); 
var markerMe = new google.maps.Marker({ 
    position: latLngPre, 
    title: 'Me Here', 
    map: mapNwf, 
    draggable: true, 
    animation: google.maps.Animation.DROP 
    }); 
......... 
</script> 
......... 
<div id="myInfoForm" style="display: none;"> 
<iframe border=1 width=100% height=200 align=center marginwidth=0 marginheight=0 seamless=seamless frameBorder=0 src="nwfSetInfo.cgi" name="myInfoIframe" id="myInfoIframe" scrolling=no></iframe> 
</div> 
......... 

相關部分從頂層HTML至中級的iframe「mapIframe」並通過從

parent.parent.move_it(13.7323691218542, 100.643479766271); 
改變在「myInfoIframe」 iframe中「move_it()」調用向下10

parent.move_it(13.7323691218542, 100.643479766271); 

不知道爲什麼,但很明顯,通過調用上下文級別的東西還原上了原來的「可以讀,但在地圖上的變量不寫」的問題得到糾正。如果有人有一個很好的解釋,希望聽到它。謝謝。