当从iframe调用

时间:2019-01-01 14:11:54

标签: javascript iframe cross-domain navigator web-push

说我在一个域上拥有一个网站:a.example.com
我想检查当前的Web Client 是否已授予另一个域的通知权限,例如b.example.com

到目前为止,我一直使用Iframe(跨域iframe)到b.example.com上运行以下permissions query的特定页面来进行此操作:

return navigator.permissions.query({ name: 'notifications' })
            .then((result) => {
                return result.state;
            });

直到现在,以上代码在Iframe中都可以正常工作,而且我不确定result.state为何总是返回"prompt",即使 Client 已授予权限。
但是,如果呼叫Notification.permission,则会显示"granted"

值得一提的是,如果我在navigator.permissions.query({name:'notifications'})(在浏览器的控制台中没有iframe)上调用b.example.com,则会返回"granted"

我在这里想念什么?

[该示例我一直在使用Chrome版本71.0.3578.98]

更新1
似乎navigator.permissions.querya.example.com(顶级域)而不是b.example.com返回值,但是Notification.permission返回b.example.com的值?

这是api的新行为还是我缺少某些东西?

0 个答案:

没有答案