GMX standalone view

Set gmx option to open email in standalone window

目前為 2020-03-22 提交的版本,檢視 最新版本

// ==UserScript==
// @name         GMX standalone view
// @namespace    https://github.com/Procyon-b
// @version      0.3.1
// @description  Set gmx option to open email in standalone window
// @author       Achernar
// @match        https://3c.gmx.net/mail/client/home*
// @match        https://3c.gmx.net/mail/client/folder*
// @match        https://3c.gmx.net/mail/client/search*
// @match        https://3c-bap.gmx.net/mail/client/home*
// @match        https://3c-bap.gmx.net/mail/client/folder*
// @match        https://3c-bap.gmx.net/mail/client/search*
// @include      https://3c-bs.gmx.tld/mail/client/home*
// @include      https://3c-bs.gmx.tld/mail/client/folder*
// @include      https://3c-bs.gmx.tld/mail/client/search*
// @run-at document-body
// @grant GM_setValue
// @grant GM_getValue
// ==/UserScript==

(function() {
"use strict";

const maxRetry=40;
var e, r, retry=maxRetry;

function toggle(ev) {
  if (!e) return;
  var v=(typeof ev == 'object')? !phx.vars.enableStandaloneView : ev;
  e.checked=v;
  phx.vars.enableStandaloneView=v;
  GM_setValue('option', v);
}


function addChk() {
  if (!(r=document.querySelector('.widget.menubar .button-container.left'))) {
    if (retry--) {
      setTimeout(addChk,10);
      }
    return;
    }
  retry=maxRetry;
  e=document.createElement('input');
  e.type='checkbox';
  e.id='standaloneView';
  e.title='Standalone view';
  e.style='margin-top: 6px;';
  r.appendChild(e);
  e.onclick=toggle;
  toggle(GM_getValue('option',true));
}

addChk();

const obs = new MutationObserver(function(mutL){
  for (let mut of mutL) {
    for (let el of mut.addedNodes) {
      if (el.classList && el.classList.contains('menubar')) {
        r=document.querySelector('.widget.menubar .button-container.left');
        addChk();
        return;
        }
      }
    }
  });

var t=document.querySelector('#panel-mail-table .panel-body form');
if (t) obs.observe(t, {subtree: false, childList: true, attributes: false} );


})();