如果用户允许位置共享,我的 GTM 容器中需要自定义 javascript 变量 return true
I need a custom javascript variable in my GTM container to return true if the user allows location sharing
我需要在用户将位置共享到浏览器时触发标签。我在我的 GTM 容器中尝试将以下代码作为自定义 javascript 变量,但没有用。
navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
if(PermissionStatus.state == 'granted'){
return true;
}else{
return false;
}
})
一种可能的解决方案是将您拥有的代码实现为自定义 HTML 标记,并将承诺的结果作为事件推送到数据层 - 然后您可以在这个新事件上触发您的标记。例如:
<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。
我需要在用户将位置共享到浏览器时触发标签。我在我的 GTM 容器中尝试将以下代码作为自定义 javascript 变量,但没有用。
navigator.permissions && navigator.permissions.query({name:'geolocation'}).then(function(PermissionStatus) {
if(PermissionStatus.state == 'granted'){
return true;
}else{
return false;
}
})
一种可能的解决方案是将您拥有的代码实现为自定义 HTML 标记,并将承诺的结果作为事件推送到数据层 - 然后您可以在这个新事件上触发您的标记。例如:
<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。