用户与浏览器共享位置后,我需要触发代码。我在GTM容器中尝试将以下代码作为自定义javascript变量,但无法正常工作。
navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
if(PermissionStatus.state == 'granted'){
return true;
}else{
return false;
}
})
答案 0 :(得分:1)
一种可能的解决方案是将您拥有的代码实现为自定义HTML标签,并将promise的结果作为事件推送到dataLayer-然后您可以在此新事件上触发标签。例如:
<script>
navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
if(PermissionStatus.state == 'granted'){
dataLayer.push({event: 'permissionGranted'})
}else{
dataLayer.push({event: 'permissionDenied'})
}
})
<script>
然后,您需要在此自定义事件“ permissionGranted”上触发代码。
有关自定义事件here的更多信息。