在浏览器中启用或禁用地理位置时触发事件



我想在浏览器中启用地理位置时显示或隐藏html。

我想根据用户交互来做到这一点,如果他们点击确认,他们会得到 html,如果他们否认他们没有。

如果页面加载,并且授予了权限,我也想显示 html,如果不是,则不应该。

我已经审查了以下内容。

navigator.permissions.query({name:'geolocation'}).then(function(permissionStatus) {
//console.log('geolocation permission state is ', permissionStatus.state);
permissionStatus.onchange = function() {
if (permissionStatus.state == 'granted ') {
console.log('geolocation permission state has changed to ', this.state);
}
};
});

并检查页面加载。

navigator.permissions && navigator.permissions.query({name: 'geolocation'}).then(function(PermissionStatus) {
if( PermissionStatus.state == 'granted' ) {
console.log('hello');
}
});

然而,这些都不是日志记录。

我上面的代码包含在(function( $ ) { })( jQuery );中,因为我在这里也使用 jQuery。除了上述代码之外,我已经删除了所有代码,以确保这不是问题,但我仍然无法跟踪更改事件并在页面加载时检查地理位置。

onchange 部分不起作用,因为我没有为我的 if 语句获取实际事件。

if ( permissionStatus.state == 'granted' ) {

应该是

if ( this.state == 'granted ' ) {

最新更新