← Tutti gli esempi

JavaScript Produttività arxiv.org

arXiv: segna i paper come letti

Quando clicchi un link PDF, salva l'ID localmente e attenua le righe del paper negli elenchi.

Codice da copiare

// Mark papers as "read" once you click their PDF link, dim them in listings
(function () {
  var KEY = 'jzArxReadIds';
  function load() {
    try { return JSON.parse(localStorage.getItem(KEY) || '{}') || {}; }
    catch (e) { return {}; }
  }
  function save(map) { localStorage.setItem(KEY, JSON.stringify(map)); }
  function markId(id) {
    if (!id) { return; }
    var m = load(); m[id] = Date.now(); save(m);
    apply();
  }
  function extractId(href) {
    var m = href.match(/\/(?:abs|pdf)\/([\w.\-\/]+?)(?:v\d+)?(?:\.pdf)?$/);
    return m ? m[1] : null;
  }
  document.addEventListener('click', function (e) {
    var a = e.target.closest('a[href*="/pdf/"], a[href$=".pdf"]');
    if (!a) { return; }
    markId(extractId(a.getAttribute('href') || ''));
  }, true);
  function apply() {
    var read = load();
    document.querySelectorAll('a[href*="/abs/"]').forEach(function (a) {
      var id = extractId(a.getAttribute('href') || '');
      if (!id || !read[id]) { return; }
      var row = a.closest('dt, li, tr, .arxiv-result') || a.parentElement;
      if (row && !row.dataset.jzArxRead) {
        row.dataset.jzArxRead = '1';
        row.style.opacity = '0.55';
        row.style.filter = 'grayscale(0.5)';
        var tag = document.createElement('span');
        tag.textContent = ' ✓ read';
        tag.style.cssText = 'color:#0a7c3a;font-weight:700;font-size:12px;margin-left:6px;';
        a.appendChild(tag);
      }
    });
  }
  apply();
  new MutationObserver(function () {
    clearTimeout(window.__jzArxRead);
    window.__jzArxRead = setTimeout(apply, 400);
  }).observe(document.body, { childList: true, subtree: true });
})();

Come usare questo esempio

  1. Copia il codice con il pulsante qui sopra.
  2. Installa JustZix (2 minuti) e apri l'estensione sulla pagina di destinazione.
  3. Aggiungi una nuova regola corrispondente a quella pagina.
  4. Incolla il codice nel pannello JavaScript della regola e salva — viene eseguito a ogni visita della pagina.

Valuta questo esempio

Nessuna valutazione — sii il primo.

Questo esempio funziona?

Gli snippet sono inutili senza un posto dove incollarli.

JustZix si installa in 2 minuti ed esegue il tuo codice su ogni pagina corrispondente. Senza account, senza pagamento.

Scarica gratis Guarda i casi d'uso