【问题标题】:Google Maps JavaScript StreetView bug谷歌地图 JavaScript 街景错误
【发布时间】:2018-10-29 07:56:38
【问题描述】:

Google Maps JavaScript (3.32.13) 的最新版本与 Prototype.js 版本 1.7.3 冲突。

当我在页面中包含 Prototype 时,Google 地图的街景将不会处理鼠标拖动来“环顾四周”

这是一个已知问题吗?有什么解决方法吗?

【问题讨论】:

  • 我也遇到了你所说的情况——我正试图找出事件没有触发的原因。
  • 可能 Prototype.js 填充了一些包含在 ES6 标准中的对象或函数。由于 Function#bind,我发现原型和 Google 地图 API 存在一些问题。

标签: google-maps google-maps-api-3 prototypejs


【解决方案1】:

我也有同样的问题。于是,我重新打开了一个相关的GM API tkt:https://issuetracker.google.com/issues/72690631

我尝试将函数 collect 重命名为prototype.js,但没有成功。

【讨论】:

  • 感谢您对此的关注!
【解决方案2】:

所以问题在于 PrototypeJS 将 Array.from 覆盖为 $A() 的别名,从而创建了一个扩展的 Array 对象。

如果(大 IF)您没有使用 Array.from 创建数组的浅表副本并期望 Prototype 扩展方法,您可以删除/注释掉prototype.js 中仅此行

Array.from = $A;

在我的 1.7.3 副本中是第 1114 行

【讨论】:

  • 谢谢!我没有依赖prototype.js 的Array.from。这有效!
【解决方案3】:

我还为 Prototype.js 和 Google API 之间的冲突而苦苦挣扎。删除 Prototype.js 不是一个选项,因为它在项目中根深蒂固。我决定更换

Array.from = $A;

通过

Array.from = Array.from || $A;

在prototype.js 文件中。它保持对没有原生实现 Array.from 的旧浏览器的支持。但这并不能解决旧浏览器上 Prototype.js 和 Google API 之间的冲突!

本网站使用不支持迭代的实现覆盖 Array.from(),这可能导致 Google Maps JavaScript API v3 无法正常工作。

【讨论】:

    猜你喜欢
    • 2015-10-09
    • 2013-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多