当我尝试在我的页面中调用infoBox.open方法时,我收到以下错误。
Microsoft JScript运行时错误:属性值无效:[object Object]
以下是我正在使用的代码。
var myInfoOptions = {
content: 'Test'//$extradiv.html()
, closeBoxMargin: "12px 2px 2px 2px"
, closeBoxURL: '/Images/infowindow-close.gif'
};
var ib = new InfoBox(myInfoOptions);
var info_Marker = new google.maps.Marker({
position: new google.maps.LatLng(e.latLng.lat(), e.latLng.lng())
});
info_Marker.setMap(null);
ib.open(map, info_Marker);
我已全局声明了Map对象并按如下方式绑定数据。
var myOptions = {
zoom: 5,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
希望快速回应。
谢谢,
Kalyan Basa
答案 0 :(得分:1)
只是一个猜测:
会发生什么:IE
问题在于:如果在解析元素之前未声明变量,则无法覆盖对元素的引用。
更好理解的演示:
尝试#1:
<input id="foo" type="button" value="click me to see foo's type-property" onclick="fx()">
<script>
function fx()
{
alert(foo.type);
}
window.onload=function()
{
foo={type:'this is the type-property of the foo-variable'};
}
</script>
...在创建变量之前解析输入#foo。创建变量foo的尝试将在IE中失败,因为已存在对全局范围内可访问的输入#foo的引用。警报将返回“按钮”,输入#foo
的类型
http://jsfiddle.net/doktormolle/kA9nb/
尝试#2:
<script>
var foo;
function fx()
{
alert(foo.type);
}
window.onload=function()
{
foo={type:'this is the type-property of the foo-variable'};
}
</script>
<input id="foo" type="button" value="click me to see foo's type-property" onclick="fx()">
如您所见,在解析输入#foo之前,变量foo在全局范围内声明。
IE现在不会创建输入#foo的全局引用,一切都按预期工作:
http://jsfiddle.net/doktormolle/88QV8/
所以解决方案:在全局范围内声明变量“map”。