Google Maps API v3中最近发生了哪些与mootools.js Java Script不兼容的更改,导致控件消失?

时间:2014-09-16 18:24:21

标签: javascript google-maps google-maps-api-3 controls

我们有一个嵌入Google Maps API v3的页面,最近(今天?)缩放控件和地图背景控件已经丢失。没有对代码进行任何更改。当我们禁用mootools.js时,控件会返回。 Google Maps API v3中最近发生了哪些与mootools javascript不兼容的内容,这可能会导致控件消失?

3 个答案:

答案 0 :(得分:3)

问题是由较旧版本的Mootools引起的。

您可以尝试使用最新版本的mootools吗?

我使用mootools 1.4.5和build ab8ea8824dc3b24b6666867a2c4ed58ebb762cf0并且它不起作用 如果我使用mootools 1.4.5 with build 74e34796f5f76640cdb98853004650aea1499d69,它可以工作。

错误在Function.implement和方法绑定中。

第一次构建:

bind: function(bind, args){
    var self = this;
    if (args != null) args = Array.from(args);
    return function(){
        return self.apply(bind, args || arguments);
    };
},

第二次构建:

/*<!ES5-bind>*/
bind: function(that){
    var self = this,
        args = arguments.length > 1 ? Array.slice(arguments, 1) : null,
        F = function(){};

    var bound = function(){
        var context = that, length = arguments.length;
        if (this instanceof bound){
            F.prototype = self.prototype;
            context = new F;
        }
        var result = (!args && !length)
            ? self.call(context)
            : self.apply(context, args && length ? args.concat(Array.slice(arguments)) : args || arguments);
        return context == that ? result : context;
    };
    return bound;
},

第二个版本对错误有更多保护。

答案 1 :(得分:2)

我认为Mootools打破了Gmaps全球代码的一部分,也许是事件处理程序。

在适用于我的Mootools-core.js之后加载Google Maps API Javascript。

我今天使用Gmaps API V3和Mootools 1.4和Mootools 1.5进行了测试。

(抱歉,我不会说英语:D)

答案 2 :(得分:0)

这种情况在我之前发生过几次,所有的突然控制都很有趣,然后在一天之后自动修复。 在你的情况下,我搞砸了引导而不是mootools。

我觉得这很有帮助 在样式表中添加:

#mapDiv img{ max-width: none; }