Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图不会仅在IE7中加载:';对方法或属性访问的意外调用';_Javascript_Google Maps_Internet Explorer 7_Google Maps Api 3 - Fatal编程技术网

Javascript 谷歌地图不会仅在IE7中加载:';对方法或属性访问的意外调用';

Javascript 谷歌地图不会仅在IE7中加载:';对方法或属性访问的意外调用';,javascript,google-maps,internet-explorer-7,google-maps-api-3,Javascript,Google Maps,Internet Explorer 7,Google Maps Api 3,我有一个地图,当用户点击按钮时,它会初始化谷歌地图。这将触发运行此方法的事件: $self.maps = { loadMap : function(){ var canvasDom = "map"; var latlng = new google.maps.LatLng(40.7608, -111.8910); var myOptions = { zoom: 12, center: latln

我有一个地图,当用户点击按钮时,它会初始化谷歌地图。这将触发运行此方法的事件:

$self.maps = {
    loadMap : function(){
        var canvasDom = "map";
        var latlng = new google.maps.LatLng(40.7608, -111.8910);
        var myOptions = {
            zoom: 12,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        $self.vars.maps.map = new google.maps.Map(document.getElementById(canvasDom), myOptions);
    },
//other methods in the object for handling other maps stuff...
};
当调用最后一行创建新地图时,出现以下错误: “SCRIPT65535:对方法或属性访问的意外调用。” main.js,第31行,字符347

它似乎要中断的代码行是:

a[Va](b);
所有这些都适用于Firefox、Chrome、IE8和IE9,除了IE7(使用IE9的兼容模式)之外,我尝试过的所有东西


更新:我已经设置了一个,以相同的方式初始化映射,只是出于某种原因,它不会重现我在应用程序中遇到的IE7错误。我真的不确定这说明了什么问题。

在几个小时痛苦地注释脚本以查找冲突后,我开始手动粘贴创建地图之前正在运行的代码块。最后,我把它砍成了罪犯

看看这个:

//set that the map is open, and
//should remain so if the user searches again
$('form').append('<input type="hidden" name="map" value="true">');

$('#search-list-map')
    .removeClass('listview')
    .addClass('mapview');

//show map, hide list
$('#map').removeClass('hide');
$('#listResults').addClass('hide');

//initialize the map
$self.maps.loadMap();
//设置地图处于打开状态,然后
//如果用户再次搜索,则应保持此状态
$('form')。追加('');
$(“#搜索列表映射”)
.removeClass('listview'))
.addClass(“地图视图”);
//显示地图,隐藏列表
$('#map')。removeClass('hide');
$('#listResults').addClass('hide');
//初始化映射
$self.maps.loadMap();
loadMap()是我在上述问题中引用的方法注意,我将输入字段附加到表单中?结果是,如果有一个元素的名称与map div的id相同,并且该元素出现在DOM中map div的之前,它将抛出一个错误。据我所知,这只会发生在IE7中(可能是IE6,我没有办法进行测试)

我已经在JSFIDLE上复制了这个bug。在IE7下运行它,你会成功的