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
- Kopiere den Code mit der Schaltfläche oben.
- Installiere JustZix (2 Minuten) und öffne die Erweiterung auf der Zielseite.
- Füge eine neue Regel hinzu, die zu dieser Seite passt.
- 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.