Confluence: space avatar as tab icon

Sets browser tab icon of Confluence to the avatar of the space.

安装此脚本?
作者推荐脚本

您可能也喜欢Jira: Project icon as tab icon

安装此脚本
  1. // ==UserScript==
  2. // @name Confluence: space avatar as tab icon
  3. // @namespace https://github.com/rybak
  4. // @description Sets browser tab icon of Confluence to the avatar of the space.
  5. // @author Andrei Rybak
  6. // @homepageURL https://github.com/rybak/atlassian-tweaks
  7. // @include https://*confluence*/*
  8. // @match https://confluence.example.com/*
  9. // @icon https://wac-cdn-2.atlassian.com/image/upload/f_auto,q_auto/dam/jcr:5d1374c2-276f-4bca-9ce4-813aba614b7a/confluence-icon-gradient-blue.svg?cdnVersion=691
  10. // @version 4
  11. // @license MIT
  12. // @grant none
  13. // ==/UserScript==
  14.  
  15. (function() {
  16. 'use strict';
  17.  
  18. const LOG_PREFIX = "[Confluence: avatar favicons]";
  19.  
  20. function log(...toLog) {
  21. console.log(LOG_PREFIX, ...toLog);
  22. }
  23.  
  24. function warn(...toLog) {
  25. console.warn(LOG_PREFIX, ...toLog);
  26. }
  27.  
  28. function changeFavicon() {
  29. log("Trying...");
  30. const avatar = document.querySelector(".avatar-img") || document.querySelector('img[data-testid="space-icon"]');
  31. const shortcutIcon = document.querySelector('link[rel="shortcut icon"]');
  32. const icon = document.querySelector('link[rel="icon"]');
  33. if (avatar && (shortcutIcon || icon)) {
  34. const url = avatar.src;
  35. log("URL = " + url);
  36. if (shortcutIcon) {
  37. shortcutIcon.href = url;
  38. log("Done shortcut.");
  39. }
  40. if (icon) {
  41. icon.href = url;
  42. log("Done icon.");
  43. }
  44. } else {
  45. log("Something went wrong.", avatar, shortcutIcon, icon);
  46. }
  47. }
  48.  
  49. // https://youmightnotneedjquery.com/#ready
  50. if (document.readyState !== 'loading') {
  51. changeFavicon();
  52. } else {
  53. warn('Cannot load yet. Setting up a listener...');
  54. document.addEventListener('DOMContentLoaded', changeFavicon);
  55. }
  56. })();