← Alle Beispiele

JavaScript Produktivität scholar.google.com

Scholar: BibTeX mit einem Klick kopieren

Fügt im Cite-Popup eine Schaltfläche hinzu, die den BibTeX-Eintrag direkt in die Zwischenablage kopiert.

Code zum Kopieren

// Rewrite the "Cite" popup so BibTeX copies to the clipboard with one click
(function () {
  function watch() {
    document.querySelectorAll('div#gs_citd, div.gs_citi, div.gs_citr').forEach(function (popup) {
      if (popup.dataset.jzSchBib) { return; }
      var bibLink = popup.querySelector('a[href*="output=bibtex"], a[href*="scisig=bibtex"], a[href*="q=info"][href*="bibtex"]');
      if (!bibLink) { return; }
      popup.dataset.jzSchBib = '1';
      var btn = document.createElement('button');
      btn.type = 'button';
      btn.textContent = 'Copy BibTeX';
      btn.style.cssText = 'margin:8px 4px;padding:6px 14px;background:#1a73e8;color:#fff;border:0;border-radius:4px;font-size:14px;font-weight:600;cursor:pointer;';
      btn.addEventListener('click', function (e) {
        e.preventDefault();
        fetch(bibLink.href, { credentials: 'include' })
          .then(function (r) { return r.text(); })
          .then(function (html) {
            var m = html.match(/@\w+\{[\s\S]*?\n\}/);
            var bibtex = m ? m[0] : html.replace(/<[^>]+>/g, '').trim();
            return navigator.clipboard.writeText(bibtex);
          })
          .then(function () {
            btn.textContent = 'Copied!';
            setTimeout(function () { btn.textContent = 'Copy BibTeX'; }, 1500);
          })
          .catch(function () { btn.textContent = 'Failed'; });
      });
      popup.insertBefore(btn, popup.firstChild);
    });
  }
  new MutationObserver(watch).observe(document.body, { childList: true, subtree: true });
  watch();
})();

So verwendest du dieses Beispiel

  1. Kopiere den Code mit der Schaltfläche oben.
  2. Installiere JustZix (2 Minuten) und öffne die Erweiterung auf der Zielseite.
  3. Füge eine neue Regel hinzu, die zu dieser Seite passt.
  4. Füge den Code in das JavaScript-Panel der Regel ein und speichere — er läuft bei jedem Seitenbesuch.

Bewerte dieses Beispiel

Noch keine Bewertungen — sei der Erste.

Funktioniert dieses Beispiel?

Snippets sind nutzlos, wenn du sie nirgendwo einfügen kannst.

JustZix ist in 2 Minuten installiert und führt deinen Code auf jeder passenden Seite aus. Kein Konto, keine Zahlung.

Kostenlos herunterladen Anwendungsfälle ansehen