Editable Title

Makes document title element editable

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        Editable Title
// @namespace   myfonj
// @include     *
// @grant       none
// @version     1.0.2
// @run-at      document-start
// @description Makes document title element editable
// @license     CC0
// ==/UserScript==
/*
 https://greasyfork.org/en/scripts/454707/versions/new
 1.0.1 (2022-11-14) workaround for Firefox https://bugzilla.mozilla.org/show_bug.cgi?id=1291467
*/

const conf = {capture: true};
const dd = document.documentElement;

function editablizeTitleWhenClickizored ( event ) {
  const tgt = event.target;
  if( tgt?.constructor?.name !== 'HTMLTitleElement' ) {
    return;
  }
  // workaround for bug 1291467
  document.body.appendChild(tgt);
  tgt.addEventListener('blur',function(){document.head.appendChild(tgt)},{once:true})
  tgt.setAttribute('contenteditable', '');
  // tgt.focus();
  // dd.removeEventListener('click', editablizeTitleWhenClickizored, conf);
}

dd.addEventListener('mousedown', editablizeTitleWhenClickizored, conf);