0

データベースから通知を取得するために、Web アプリで Webkit 通知スクリプトを作成しました。コードを以下に示します。

function checkNotifications() {
    if (window.webkitNotifications.checkPermission() == 1) {
        window.webkitNotifications.requestPermission();
    }
    else {
        $.ajax({
            type: "GET",
            dataType: 'json',
            url: '/check_notifications',
            success: function(data){

                if (data){
                    var ticketId = data.ticket_id;
                    console.log(data);
                    var comment = data.comment;
                    var createdDate = data.created_at;
                    var notificationComment = data.comment;
                    var notificationId = data.notifcation_id;
                    var notification = window.webkitNotifications.createNotification('/pt_logo_small.png', 'Project Ticket '+ticketId+ ' Updated!', 'Ticket has been updated. Click here to see!');     
                    notification.show();
                    console.log(notificationId);

                    notification.onclick = function(){
                        this.close();
                        console.log("NOTIFICATION WAS CLICKED!")
                        $.ajax({
                            type: "GET",
                            dataType: 'json',
                            url: '/read_notifications/' + notificationId,
                            success: function(){
                                window.location = '/pto/' + ticketId;
                            },
                            error: function(){
                                window.location = '/pto/' + ticketId;
                            }
                        });
                        
                        console.log(ticketId, comment, createdDate);
                    };
                }

            }
        });
    }
    setTimeout(checkNotifications, 20000);
}   

何らかの理由で。別のタブを選択するか、Web アプリケーション内の別のパスに移動すると、スクリプトが実行されて通知が表示されますが、.onclickイベントはトリガーされません。

イベントがトリガーされない理由を知っている人はいますか?

Appleによるとonclick、イベントを作成したページをフォーカスする必要があります。ただし、.onclick関数内では何もトリガーされません。

4

0 に答える 0