Wie kann ich meinen Browser zwingen, PDF-Dateien im Browser anzuzeigen, anstatt sie herunterzuladen?

Wie kann ich meinen Browser zwingen, PDF-Dateien im Browser anzuzeigen, anstatt sie herunterzuladen?

Irgendwann (ich glaube, vor kurzem, aber ich bin nicht sicher),Naturhat begonnen, den Browser zu zwingen, die PDF-Dateien für Dokumente herunterzuladen, anstatt sie im Browser zu öffnen. Wie kann ich den Browser zwingen, dieses Verhalten zu unterlassen und PDF-Links im Browser zu öffnen?

Antwort1

Es gibt anscheinend mehrere Möglichkeiten, wie die Website versuchen kann, Ihren Webbrowser zu zwingen, eine bestimmte Datei herunterzuladen, anstatt sie im Fenster zu öffnen. Eine Möglichkeit, wie dies geschehen kann (Senden des Attributs Content-Disposition: attachmentstatt inlineim HTTP-Header der Antwort), wurde bereits behandelt indieser Thread.

Was Nature derzeit macht, ist, ein downloadAttribut in den aLink-Tag aufzunehmen, der zum PDF führt. Dies kann (in Google Chrome) diagnostiziert werden, indem man mit der rechten Maustaste auf den Link klickt und sich den Tag selbst im Element-Viewer ansieht:

Dies kann behoben werden, indem man ein geeignetes Userscript verwendet, um dieses Attribut mit einem Userscript-Manager wieTampermonkeyfür Google Chrome oderFettaffefür Firefox.

Dies ist ein einfaches Benutzerskript, das dies erledigt:

// ==UserScript==
// @name     View Nature pdfs in-browser
// @include  https://www.nature.com/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// ==/UserScript==

/*--- Use the jQuery contains selector to find content to remove.
    Beware that not all whitespace is as it appears.
*/

var allLinks, thisLink;
allLinks = document.evaluate(
    '//a[@download]',
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i = 0; i < allLinks.snapshotLength; i++) {
    thisLink = allLinks.snapshotItem(i);
    thisLink.removeAttribute('download');
}

verwandte Informationen