Skip to content


Subversion checkout URL

You can clone with
Download ZIP
~/.js for Firefox
Branch: master

Merge pull request #41 from ralesi/ff-41

Changes to new sdk module paths
latest commit 79eda027eb
@rlr authored
Failed to load latest commit information.
data nit
docs Initial version of dotjs.
lib Changes to new sdk module paths
tests Initial version of dotjs.
CONTRIBUTORS Add @bpierre to contributors.
LICENSE Fix Issue #22 - Add LICENSE file new version
package.json Changes to new sdk module paths


This is a Firefox Add-on port of defunkt's Chrome extension

dotjs is a Firefox Add-on that executes JavaScript and CoffeeScript files in ~/.js based on their filename and the domain of the site you are visiting.

If you navigate to, dotjs will execute ~/.js/ and/or ~/.js/ If you have a ~/.js/default.js, it will execute on every page you visit. Also, you can put site specific .css files in ~/.css (C:\Users\<username>\css\. in Windows 7). default.css loads in all sites.

This makes it super easy to spruce up your favorite pages using JavaScript and CSS.

Bonus: files in ~/.js have jQuery 1.9.0 loaded, regardless of whether the site you're hacking uses jQuery.

GreaseMonkey user scripts are great, but you need to publish them somewhere and re-publish after making modifications. With dotjs, just add or edit files in ~/.js.


$ cat ~/.js/
// swap github logo with trollface
$('#header .site-logo img')
.css('width', '100px')
.css('margin-top', '-15px')
.attr('src', '');

How to target a specific path

Sometimes, you don’t want to target a whole domain, but only a path.


You can use the @-moz-document Mozilla Extension:

/* Full path */
@-moz-document url-prefix( {
    /* CSS here */

/* Regex */
@-moz-document regexp("^https?:\/\/www\.w3\.org\/Style\/.*") {
    /* CSS here */



You can test the window.location object:

// Search for a string
if (window.location.pathname.indexOf('/Style/') === 0) {
    // JS here

// Regex
if (/^\/Style\/.*/.test(window.location.pathname)) === 0) {
    // JS here




Contributors (Thank you!)


v1.11 This version now looks up the files recursively for the domains. So for example, for "" it will attempt to load: com.js

v1.10 Fixed bug with default.js (Issue #28)

v1.9 Performance optimization. Load content scripts on DOM ready.

v1.8 Updated jquery to v1.9 and coffeescript to v1.4.

v1.7 Updated to version 1.7 of addon sdk along with some optimizations.

v1.6: Leaner, meaner dotjs. A bunch of optimizations by canuckistani (Thanks! \o/).

v1.3: Only load into into the main tab document (vs iframes, etc.).Improves memory usage and performance.

v1.2: Updated to jQuery 1.7.1 and some cleanup (Thanks djl!).

v0.9: CSS support!

v0.8: Windows support! Put your scripts in a js folder under your home directory (C:\Users\<username>\js\. in Windows 7).

v0.7: CoffeeScript support! ~/.js/ gets transpiled to JavaScript and executed.


"I almost wish you could just stick JavaScript in ~/.js. Do you know what I'm saying?"

Something went wrong with that request. Please try again.