gpt4 book ai didi

html - webkitNotifications - SECURITY_ERR : DOM Exception 18 - script, OK - 按钮

转载 作者:行者123 更新时间:2023-12-04 17:40:34 25 4
gpt4 key购买 nike

我关注了http://www.beakkon.com/tutorial/html5/desktop-notification html 5 桌面通知教程。该页面上的演示对我有用。如果我复制整个代码,它可以正常工作,但是......当我从 javascript 调用该方法时,它不会显示通知或权限请求。相反,它会引发 SECURITY_ERR: DOM Exception 18 .

似乎错误是由创建通知本身的行引发的。

有没有人粘上为什么按钮可以工作而直接调用函数却不行?

我当前的代码:

function RequestPermission(callback)
{
window.webkitNotifications.requestPermission(callback);
}

function notif() {
if (window.webkitNotifications.checkPermission() > 0) {
RequestPermission(notif);
}

notification = window.webkitNotifications.createHTMLNotification('http://localhost:3000/images/rails.png');
notification.show();
}

不计算:
notif();

计算:
<button onclick="notif()">NOTIFY</button>

谷歌浏览器:9.0.597.84(Oficiální sestavení 72991)

网络套件:534.13

最佳答案

SECURITY_ERR: DOM Exception 18如果用户不允许您的请求获得通知,则有效。

发生这种情况的原因仅仅是因为 requestPermission是异步的。一旦用户单击“允许”以获得授予权限,它将允许您使用 HTML5 通知功能。

在您的情况下,您无需等待用户单击“允许”按钮,而是自动尝试创建 HTML5 通知,而无需等待他们的确认。如果您重新排列条件,它应该可以工作。

function RequestPermission(callback) {
window.webkitNotifications.requestPermission(callback);
}

function notif() {
if (window.webkitNotifications.checkPermission() > 0) {
RequestPermission(notif);
} else {
notification = window.webkitNotifications.createHTMLNotification('http://localhost:3000/images/rails.png');
notification.show();
}
}

正如您在上面注意到的,将通知创建放在条件语句中,当回调被触发时,它将保证拥有权限。

关于html - webkitNotifications - SECURITY_ERR : DOM Exception 18 - script, OK - 按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4913866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com