WebページでWebkit通知を使用して、ページの更新(AJAXを使用して定期的に更新される)をユーザーに通知しています。可能な限り下位互換性を維持するために、プレフィックスなしのバージョンではなく、プレフィックス付きのwebkitNotificationsを使用しています。通知を作成し、要素のデータにその参照を保持し(jQueryを使用)、onCloseハンドラー関数を追加して表示します。通知は通知センターに正常に表示され、正しく機能します。onClickハンドラーをアタッチすると、期待どおりに機能します。ただし、通知を閉じると(アラートとして表示されている場合は[閉じる]をクリックするか、単なるバナーの場合は通知センターで通知をクリアします)、onCloseChromeではハンドラーは呼び出されません。Webページに通知への参照がまだあり、cancelメソッドを呼び出すと(通知は通知センターに表示されなくなります)、onCloseハンドラーが呼び出されます。
私の知る限り、この問題はMountain Lionで実行されているChromeに固有のものです(以前のバージョンのOSXではテストしていませんが、通知センターが存在しなかったため、Windowsと同様に機能すると思います) 。Mountain LionでSafariを使用すると、通知を閉じるときにonCloseが適切に呼び出され、WindowsでChromeからの通知を閉じるときにも呼び出されます。
なぜこれが必要なのか、そしてonCloseイベントを正しく受信する方法があるかどうか誰かが知っていますか?
私は人々がこれをテストするためにjsFiddleをセットアップしました。
(明確にするために、私はChromeのバージョン22.0.1229.79を実行しており、テストはSafariのバージョン6.0.1で機能します)。