У меня действительно странная проблема JavaScript, в которой я не нашел прецедента, так что я надеюсь, что кто-то ее увидит.Исходный код для SharePoint JavaScript Notification Issue
Я работаю над кодом JavaScript, который находится в SharePoint, и я пытаюсь использовать уведомления на рабочем столе для пользователей Firefox и Chrome.
У меня есть следующий код, как только основной тест
$(document).ready(function() {
if ((window.Notification) && (Notification.permission !== "granted")) {
Notification.requestPermission(function(status) {
if (Notification.permission != status) Notification.permission = status;
});
}
if (Notification.permission === "granted") {
var Notification = new Notification("This is a test");
}
});
Если я использую этот код на веб-странице пользовательских вне SharePoint работает прекрасно. Если я загружу его в SharePoint, хотя он спорадический; на некоторых страницах он будет работать нормально, но на других страницах я получаю сообщение о том, что Notifcation.requestPermission не является функцией. Если я делаю console.log в объекте Notification и Notification.permission, я получаю разные результаты в зависимости от того, работаю ли я на рабочей странице или не работает. На рабочей странице я вижу уведомление как функцию со всеми правильными параметрами и Notification.permission появляется как «предоставлено»; на неработающих страницах есть уведомление как пустой объект, а Notification.permission не определено. Это происходит как в SharePoint 2010, так и в 2013 году.
Кто-нибудь испытал это раньше?
Столица N была опечаткой в моем копировании этого кода (его на компьютере с воздушным фильтром, поэтому он не мог копировать и вставлять). Фактический код использует нижний регистр n в имени переменной. Кроме того, даже если это не так, запрос requestPermission приходит перед конструктором уведомления, поскольку конструктор вызывается только в том случае, если Notification.permission равно «предоставлен». Этот код работает на некоторых страницах и отлично работает за пределами SharePoint. –