" SCRIPT1028:预期的标识符,字符串或数字"在ie7和ie8中

时间:2014-06-16 09:53:42

标签: javascript jquery internet-explorer internet-explorer-8 internet-explorer-7

我的地图脚本有问题。它可以在除Internet Explorer 7和8之外的每个浏览器中正常工作。我做了研究,在阅读了几个线程后,我检查了我的代码是否有任何尾随逗号或保留名称,但要么它不是问题,要么我只是盲目而且真的无法看到实际问题在哪里。错误的代码位于下面的片段底部(据说)。

var arrAddress = new Array();

        arrAddress[0] = jQuery('.address-holder0').text();
        arrAddress[1] = jQuery('.address-holder1').text();
        arrAddress[2] = jQuery('.address-holder2').text();

        var optionMap = {
            MapTypeId: google.maps.MapTypeId.ROADMAP,
            disableDefaultUI: true,
            styles: [
                {stylers: [{hue: '#C80071'}, {lightness: -60}, {saturation: 100}]}
            ]
        };

        var map = new google.maps.Map(document.getElementById('googleMap'), optionMap);

        var geocoder = new google.maps.Geocoder();

        var latlngbounds = new google.maps.LatLngBounds();

        asyncLoop(arrAddress.length, function(loop){
            geocoder.geocode({
                'address': arrAddress[loop.iteration()]
            }, function(results, status) {
                if (status === google.maps.GeocoderStatus.OK) {
                    var image = '<?php echo get_template_directory_uri(); ?>/images/map_pin.png';
                    var marker = new google.maps.Marker({
                        map: map,
                        position: results[0].geometry.location,
                        icon: image
                    });

                    latlngbounds.extend(results[0].geometry.location);

                }

                loop.next();
            });
        }, function() {
            map.fitBounds(latlngbounds);
        });

        function asyncLoop(iterations, func, callback) {
            var index = 0;
            var done = false;
            var loop = {
                next: function(){
                    if (done) {
                        return;
                    };

                    if (index < iterations) {
                        index++;
                        func(loop);

                    } else {
                        done = true;
                        callback();
                    };
                },
                iteration: function(){
                    return index - 1;
                }, 
                break: function(){ // the error is located here 
                                   //(at least that's what ie says)
                    done = true;
                    callback();
                }
            };
            loop.next();
            return loop;
        };

尝试使用逗号执行任何操作之前只是阻止脚本运行(而且我实际上认为它是必需的)。

我很感激任何帮助。 谢谢, 即

1 个答案:

答案 0 :(得分:2)

  

我检查了我的代码是否有任何尾随逗号或保留名称

你看起来不太努力。 break是JavaScript中的保留字,虽然ES5更新了规范以允许使用保留字作为属性标识符,但IE8及以下版本未实现该规范。

更改属性的名称或将其用引号括起来。