Google一键声明全局变量L
Google One-tap declares global variable L
Google一键库在与其他库一起使用时会出错,因为它声明了一个全局变量L。
我在缩小的代码中看到了这个,但我不确定它在做什么。
var L = 0;
function K(g) {
return "jscomp_symbol_" + (g || "") + L++
}
这与其他定义全局 L 的库(如 LeafletJS)冲突
https://github.com/Leaflet/Leaflet
我找不到 Google 的一键代码提交补丁的开源项目。我该如何解决这个问题?
在修复Google一键文件中的错误之前,您可以简单地使用Leaflet的noConflict
模式,这样您就可以将Leaflet重新分配给您喜欢的任何其他全局变量名称,并避免那些Google 库使用。由于后者是一个缩小的文件,大多数变量和函数的长度都是 1 或 2 个字符。
// Should actually be BELOW the HTML part,
// but SO insists on displaying the JS part first.
var map = Leaflet.map("map").setView([48.86, 2.35], 12);
Leaflet.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.2.0/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.2.0/dist/leaflet-src.js"></script>
<script>
// Re-assign L from Leaflet to any other global variable, and avoid conflict
// with other libraries, like Google One-tap in this case.
var Leaflet = L.noConflict();
</script>
<script src="https://smartlock.google.com/client"></script>
<div id="map" style="height: 200px;"></div>
我是此库 Google 的产品经理。现在应该解决这个问题。对此感到抱歉,感谢您的耐心等待。
Google一键库在与其他库一起使用时会出错,因为它声明了一个全局变量L。
我在缩小的代码中看到了这个,但我不确定它在做什么。
var L = 0;
function K(g) {
return "jscomp_symbol_" + (g || "") + L++
}
这与其他定义全局 L 的库(如 LeafletJS)冲突 https://github.com/Leaflet/Leaflet
我找不到 Google 的一键代码提交补丁的开源项目。我该如何解决这个问题?
在修复Google一键文件中的错误之前,您可以简单地使用Leaflet的noConflict
模式,这样您就可以将Leaflet重新分配给您喜欢的任何其他全局变量名称,并避免那些Google 库使用。由于后者是一个缩小的文件,大多数变量和函数的长度都是 1 或 2 个字符。
// Should actually be BELOW the HTML part,
// but SO insists on displaying the JS part first.
var map = Leaflet.map("map").setView([48.86, 2.35], 12);
Leaflet.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.2.0/dist/leaflet.css">
<script src="https://unpkg.com/leaflet@1.2.0/dist/leaflet-src.js"></script>
<script>
// Re-assign L from Leaflet to any other global variable, and avoid conflict
// with other libraries, like Google One-tap in this case.
var Leaflet = L.noConflict();
</script>
<script src="https://smartlock.google.com/client"></script>
<div id="map" style="height: 200px;"></div>
我是此库 Google 的产品经理。现在应该解决这个问题。对此感到抱歉,感谢您的耐心等待。