Hide Email Address From Title Bar

Remove email address from title bar on Gmail, Outlook.com, Office365, and Yahoo Mail

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        Hide Email Address From Title Bar
// @author      Jefferson "jscher2000" Scher
// @namespace   JeffersonScher
// @version     0.5
// @copyright   Copyright 2018 Jefferson Scher
// @license     BSD-3-Clause
// @description Remove email address from title bar on Gmail, Outlook.com, Office365, and Yahoo Mail
// @include     https://mail.google.com/*
// @include     https://outlook.live.com/*
// @include     https://outlook.office.com/*
// @include     https://outlook.office365.com/* 
// @include     https://mail.yahoo.com/* 
// @grant       none
// ==/UserScript==

function cleanTitle(){
  //console.log('Called cleanTitle');
  if (document.title.indexOf('@') > -1) {
    var titleparts = document.title.split(' '), titlenew = '';
    for (var i=0; i<titleparts.length; i++){
      if (titleparts[i].indexOf('@') < 0){
        titlenew += titleparts[i] + ' ';
      } else {
        if (location.hostname.indexOf('outlook.live') > -1) titlenew += 'Outlook ';
        if (location.hostname.indexOf('outlook.office') > -1) titlenew += 'Office365 ';
      }
    }
    titlenew = titlenew.replace('- - ', '- ').trim();
    document.title = titlenew;
  }
}
function setMutationWatch(){
  MutOb = (window.MutationObserver) ? window.MutationObserver : window.WebKitMutationObserver;
  if (MutOb){
    chgMon = new MutOb(function(mutationSet){
      mutationSet.forEach(function(mutation){
        for (var i=0; i<mutation.addedNodes.length; i++){
          if (mutation.addedNodes[i].nodeType == 1){ // Ignore some common nodes
            if ('LINK|META|SCRIPT|STYLE'.indexOf(mutation.addedNodes[i].nodeName) < -1) cleanTitle();
          } else { // There are rare but critical
            cleanTitle();
          }
        }
      });
    });
    // attach chgMon to <head>
    opts = {childList: true, subtree: true, attributes: false, characterData: false};
    chgMon.observe(document.getElementsByTagName('head')[0], opts);
  }
}
cleanTitle();
setMutationWatch();