1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

他のサイトに移ったらサイトのタイトルを変える

Posted at

この記事は「大分高専 Advent Calendar 2024」11日目の記事です.

はじめに

これはニュージーランドについて調べているときに出会ったサイトです.

このサイトがすごいと思ったのは,このサイトを開いたまま他のサイトに行くとタイトルが変わって,「Come back!」と表示されるところです.ぜひ試してみてください.
今回はこの機能をjavascriptで実装してみたいと思います.

実装してみる

他のサイトに移った時,タイトルが変わるという機能を実装したいです.
まず,タイトルを変えるには以下のようにtitle要素を取得し,textContentの値を変更すれば良いです.

const title = document.querySelector('html title');
// 要素の取得
title.textContent = "ココに内容";
// 内容の変更

問題は他のサイトに移ったことをどうやって検知するか.
ここで登場するのが,blurイベントです.

このイベントをWebページ全体(body要素)につけておくことで,そのサイトがフォーカスを失ったとき,つまり他のサイトにフォーカスが移ったときにこのイベントが呼ばれます.逆に,フォーカスを受け取ったときにはonfocusイベントが呼ばれます.

    let body = document.querySelector('html body');
    body.onblur = () => {   
        title.textContent = "(。-ˇ_ˇ-。)";
    }
    body.onfocus = () => { 
        title.textContent = "ヾ(o ・∀・)ノwelcome back";
    }

実際の動作がこちら.

画面収録-2024-12-11-0.07.37.gif

他のページに移ったときに「(。-ˇ_ˇ-。)」が表示されています.成功です.

おわりに

今回は,他のサイトにフォーカスが移ったときに呼び出される,onblurイベントを使って,タイトルを変えるという機能を実装しました.あまり実用性はないので,遊び心を加えたいときに使うと良いかなと思いました.
他のサイトに嫉妬してるみたいで可愛いですね.

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?