How to Disable JavaScript on Brave

Brave already ships with strong privacy defaults - tracker blocking, fingerprint randomisation, HTTPS upgrades - so a lot of people who reach this page are already getting most of the wins they wanted. Disabling JavaScript on top of that is a real next step for testing how a page degrades, locking down privacy on a public network, or saving battery on an older laptop. It is also the cleanest way to confirm that a "JavaScript required" warning on a page is genuinely caused by JavaScript and not something else like a tracking-prevention exception.

This guide covers the full disable workflow on Brave (version 1.60 and up, as of 2026): the global off switch via the JavaScript permission, the per-site allow-list workflow that most privacy-conscious users settle on long-term, the Brave Shields shortcut for blocking scripts on a single site, and the mobile flows on Android and iOS. It also includes the warning you need before flipping the switch, because a lot of the modern web simply does not work without JavaScript.

Before you disable: read this

With JavaScript globally turned off in Brave, expect the following:

  • Most single-page apps (Gmail, Google Docs, Slack, Notion, X/Twitter, Facebook, Instagram, online banking) will not load past a blank screen or a static fallback.
  • Login forms on many sites will fail silently, because the submit button is wired up in JavaScript instead of a plain HTML form.
  • Search autocomplete, infinite scroll, video players, captchas, and "Add to cart" buttons will frequently break.
  • Many news sites, blogs, and Wikipedia-style pages work surprisingly well, because the body text is in the HTML.

The recommended setup for most people is block by default, allow-list a few trusted sites. That way you get the privacy and performance wins everywhere, and the handful of sites you genuinely use day to day still work. Steps for that allow-list workflow are below.

Disable JavaScript globally in Brave on Windows 11

Step 1: Open Brave

Launch Brave from the Start menu or taskbar.

Step 2: Open the Brave menu

Click the three-line menu in the top-right of the window. On Windows you can also press Alt + E to open the same menu.

Step 3: Open Settings

Choose Settings. Brave opens brave://settings.

Step 4: Site and Shields settings

In the left sidebar click Privacy and security, then Site and Shields settings. Scroll down to the Content section.

Step 5: Open the JavaScript permission

Click JavaScript. Brave opens the JavaScript detail page.

Step 6: Switch to "Don't allow sites to use JavaScript"

Under Default behavior, select Don't allow sites to use JavaScript. From this point on every page you load will be served without running any JavaScript, including pages that were already open in other tabs once you refresh them.

Disable JavaScript globally in Brave on macOS Sequoia

Step 1: Open Brave

Launch Brave from Launchpad, Spotlight, or the Dock.

Step 2: Open Settings

Press Cmd + , or click Brave → Settings in the macOS menu bar.

Step 3: Site and Shields settings

Click Privacy and security in the left sidebar, then Site and Shields settings.

Step 4: Open the JavaScript permission

Scroll to the Content section and click JavaScript.

Step 5: Switch to "Don't allow sites to use JavaScript"

Select Don't allow sites to use JavaScript. The change is instant - no Save button. Reload any open tab to see it take effect.

The fast path: brave://settings/content/javascript

If you flip the switch often, skip the menu entirely. Type or paste:

brave://settings/content/javascript

Press Enter and Brave takes you straight to the JavaScript permission page. Bookmark it if you flip the switch often.

Allow JavaScript on a single site (allow-list workflow)

This is the setup most privacy-conscious users actually want: JavaScript blocked everywhere by default, then explicitly allowed on the small set of sites you trust and use heavily.

  1. Make sure Default behavior on brave://settings/content/javascript is set to Don't allow sites to use JavaScript.
  2. Scroll down to the Customised behaviours section. Two lists: Not allowed to use JavaScript and Allowed to use JavaScript.
  3. Click Add next to Allowed to use JavaScript.
  4. Type the site, e.g. [*.]github.com to allow GitHub and all subdomains, or https://mail.google.com to scope to a single host.
  5. Click Add. The site appears in the allow-list.

The leading [*.] pattern is Brave's wildcard for "any subdomain". So [*.]example.com covers www.example.com, app.example.com, and so on. Without the wildcard, the rule applies only to the exact host.

You can also do this from a tab that is already open: click the small lock or tune icon to the left of the URL, choose Site settings, find JavaScript, and switch from Block (default) to Allow. Brave adds the site to your customised allow-list automatically.

Block JavaScript on a single site (the Shields shortcut)

The mirror image is also useful: JavaScript on globally, but switched off for a few specific sites that abuse it. In Brave the fastest way is the lion icon, no Settings tab needed:

  1. On the site you want to block, click the lion icon in the address bar.
  2. Switch Block scripts on.
  3. The page reloads automatically with JavaScript blocked. The setting persists for that site.

This is genuinely the best feature Brave has for selective script blocking - no domain pattern syntax, no Settings page, just the lion icon next to the URL.

How to verify JavaScript is now off

Settings can lie. Extensions can override them. The only way to be sure is a page that actively tests the result.

  1. Open a new tab and visit any JavaScript-detection page.
  2. Open Brave's DevTools with Cmd + Option + I (Mac) or Ctrl + Shift + I (Windows, Linux).
  3. Click the Console tab.
  4. Type 1+1 and press Enter.

If the page-level test reports JavaScript is off and a JS-heavy site stays blank, the toggle is working. (Note: DevTools sometimes runs in a privileged context even when the page does not, so the Console may still execute even if the page cannot.)

Disable JavaScript only inside DevTools (per-tab testing)

For developers who want JavaScript off for one specific tab without changing the global setting:

  1. Open the page you want to test.
  2. Press Cmd + Option + I (Mac) or Ctrl + Shift + I (Windows, Linux) to open DevTools.
  3. Open the Command Menu with Cmd + Shift + P (Mac) or Ctrl + Shift + P (Windows, Linux).
  4. Type Disable JavaScript and press Enter.
  5. Reload the page. JavaScript is now off for this tab only, while DevTools stays open.

Disable JavaScript on Brave for Android

  1. Tap the three-dot menu (top-right or bottom depending on toolbar position).
  2. Tap Settings.
  3. Tap Site settings, then JavaScript.
  4. Switch the toggle off. Reload any open tab.

The same per-site exception list works as on desktop.

Disable JavaScript on Brave for iPhone and iPad

There is no JavaScript toggle inside Brave iOS. iOS browsers all use the system WebKit engine, and the only way to turn JavaScript off is via Safari's setting in the iOS Settings app. That setting affects every browser on the device.

  1. Open the iOS Settings app.
  2. Scroll to Apps and tap it.
  3. Tap Safari.
  4. Scroll to the bottom and tap Advanced.
  5. Switch the JavaScript toggle off.

JavaScript is now off across Brave, Safari, Chrome, Edge, Firefox, and every other browser on the device until you switch it back on.

What to do if a site you need is now broken

Three options, in order of how minimal the change is:

  1. Add the site to your allow-list. Most surgical option.
  2. Use a separate Brave profile for browsing with JavaScript on. Click your profile picture in the top-right, choose Add, and create a second profile that keeps JS enabled. Switch profiles when you need a JS-heavy site to work.
  3. Re-enable JavaScript globally by setting Default behavior back to Sites can use JavaScript. Use the per-site block-list (Shields lion icon) for the few sites you specifically want to block.

The allow-list approach is what most privacy-focused users settle on long-term. It keeps fingerprinting scripts off the dozens of sites you visit once and never come back to, while letting the small number you actually rely on keep working without friction.

Javascript is enabled in your web browser. If you disable JavaScript, this text will change.

F.A.Q

Why would I disable JavaScript in Brave instead of just leaving it on?

Brave already blocks trackers and ads aggressively, but JavaScript itself is the engine behind browser fingerprinting and most third-party analytics, so turning it off blocks a wider slice of surveillance than Shields alone. It also reduces CPU and battery usage on older laptops, since pages stop running animations and ad scripts in the background. Web developers turn it off temporarily to confirm their site still works for users without JavaScript - this matters for SEO, accessibility, and graceful degradation. None of these are contrarian or paranoid reasons; they are mainstream uses of the same toggle.

Should I use Brave Shields or the JavaScript setting to block scripts?

Use both, for different things. Brave Shields (the lion icon in the address bar) is best for blocking scripts on a single site you visit occasionally - one click, no domain pattern needed. The JavaScript permission page at brave://settings/content/javascript is best for the long-term default - block globally, then maintain an allow-list of the few sites you trust. Most privacy-focused users end up with global JavaScript blocked plus an allow-list of around 20-50 trusted domains, with Shields used for one-off blocking on top.

Will my logins still work in Brave with JavaScript disabled?

Some will, most will not. Older sites with traditional HTML form login (including some banks, some forums, and many self-hosted apps) keep working. Single-page apps that handle login through JavaScript - Gmail, Google Docs, Slack, Notion, X/Twitter, Instagram, most modern SaaS - will silently fail to submit. The practical recommendation is to add your daily-driver sites to the allow-list at brave://settings/content/javascript so they keep working, then leave the global default blocked for everything else.