タブ 通知 Notification 青い丸 JavaScript 方法 非アクティブ タイトル 変更 検知
結論
-
document.title
を書き換えるとできる
- したがって、JavaScriptを使ったブラウザ用の通知方法、APIがあるわけではない(
document.title
やalert
にはJSを使いますが)
- 「タブをピン留め」状態の場合にしかおきないので、遭遇数が少ない → 情報少 ・ 非再現 ・ 説明が伝わらない
document.title
を書き換えるとできるdocument.title
やalert
にはJSを使いますが)ググり力が試されて疲れた…
ピン留め状態限定ということを理解していなかったので、そこを理解して検索キーワードを加えると早かっただろう。
仕様に詳しい方がいらっしゃれば情報元などを教えてもらえると助かります。
(他にもロード完了など通知タイミングはいろいろありそうですが、検証は大変なのでドキュメントがほしい)
通知のための実装としてはwindow.addEventlister('blur')
,window.addEventlister('focus')
でアクティブ状態を管理して、
blur
なら通知タイミングでdocument.title
を書き換え。
focus
時にタイトルをデフォルトに戻すことで通知用青丸アイコンを出せるでしょう。
focus
時にタイトルを戻す必要は薄く感じるが、二回目の通知で同名変更→アイコン出ない だと嫌なので戻しておくのが吉だと思います。
環境
- Firefox 61
- Windows 7
非アクティブのタブに変更がおきたときにタブのファビコンの下に青い丸がついて通知される方法を実装したかった。
私が自作したプログラムで起きた範囲内だと、非アクティブ状態でのalert時に発生していた。
だが、SlackやTwitterなどの他のサービスでも変更時に通知されていたので、その方法を知りたかった。
調べても調べてもアドオンやファビコンの書き換えや特にプッシュ通知のことばかりでて困った。
長い処理の完了待ちの間を別タブでブラウジングしているとき、プッシュ通知では厚かましく、alertではOKが面倒というなかで
奥ゆかしいアトモスフィアを感じさせるこのテクニックは実際重要。
情報源
ありがとう…!ありがとう…!
結局回答もプッシュ通知の話ばかりされていますが、質問者様が自己解決してそれをわざわざ載せてくれるという有能。
ピン留めされたタブのページの内容が変更されると、青く光って通知されます。
「ピン留め」がキーワードだと判明したらすぐ出ました…
「ページの内容が変更」がどの程度なのかが気になるのです。
擬似コード
var active = false
window.addEventListener('blur', e = > {
active = false
})
window.addEventListener('focus', e = > {
active = true
document.title = originalTitle
})
function hoge() {
// hogehoge
if (!active) {
document.title = document.title + '完了' // とか(1)とか
}
}
その他
var active = false
window.addEventListener('blur', e = > {
active = false
})
window.addEventListener('focus', e = > {
active = true
document.title = originalTitle
})
function hoge() {
// hogehoge
if (!active) {
document.title = document.title + '完了' // とか(1)とか
}
}
同士…
Author And Source
この問題について(タブ 通知 Notification 青い丸 JavaScript 方法 非アクティブ タイトル 変更 検知), 我々は、より多くの情報をここで見つけました https://qiita.com/khsk/items/215cf51064be6ac3a513著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .