我的标题中包含两个以下脚本,我收到错误"您已在此页面上多次添加Google Maps API。这可能会导致意外错误。"
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js key=************"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=places&sensor=false"></script>
当我删除任何一个脚本时,我会收到额外的js错误。如何在我的rails应用程序中正确地重构这两个脚本?
答案 0 :(得分:17)
在上面的示例中,您将包含相同的脚本两次,但具有不同的参数。您应该能够通过包含脚本一次来解决您的问题,其中包含所有必需的参数:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=YOUR_KEY_HERE&libraries=places&sensor=false"></script>
答案 1 :(得分:7)
如果您通过ajax调用调用Google地图,则可以在退出调用地图的状态时使用window.google = {}
。
答案 2 :(得分:3)
我知道在我的情况下,它不是Rails应用程序,但可能对其他人有帮助......我正在使用React,当我在视图/页面之间切换时,我遇到了同样的错误。
和wLc一样,window.google = {}
就像魅力一样工作,并且正在删除控制台中的错误,但是<script>
标记仍然保留在html中,并且每次重新访问具有地图。
在componentWillUnmount
我添加了一些代码以删除代码。
const allScripts = document.getElementsByTagName( 'script' );
[].filter.call(
allScripts,
( scpt ) => scpt.src.indexOf( 'key=googleAPIKEY' ) >= 0
)[ 0 ].remove();
window.google = {};