Hack #81. Disable Targets for Downloads

Don't open a new window when downloading a file.

Here's something that annoys me. I click a link to download a file, and the site forces the link to open in a new window. Firefox begins to download the file, but the new window stays around. Seriously, what's up with that? Does anybody actually want this behavior?

This hack modifies links that point to known binary file types, so they just download the file and stay on the same page.

The Code

This user script runs on all web pages. For performance reasons, it creates a regular expression object in advance that matches known binary file types. (You can add your own if you like.) Then, it scans the page looking for links that match the file type expression and open a new window, and removes the target attribute to neutralize the extra blank window.

Save the following user script as disable-targets-for-downloads.user.js:

	// ==UserScript==
	// @name		 Disable Targets For Downloads
	// @namespace	 http://www.rhyley.org/
	// @description  Don't open a new window on links to binary files
	// @include      http://*
	// ==/UserScript==

	// based on code by Jason Rhyley
	// and included here with his gracious permission

	// Add other file extensions here as needed
	var oExp = new RegExp("(\.zip|\.rar|\.exe|\.tar|\.jar|\.xpi|\.gzip|" +
	    "\.gz|\.ace|\.bin|\.ico|\.jpg|\.gif|\.pdf)$", "i");
	var snapLinks = document.evaluate("//a[@onclick] | //a[@target]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var ...

Get Greasemonkey Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.