Browser JavaScript Explained
Browser JavaScript is a feature that allows Opera to automatically fix incompatible Web pages, out of date scripts, and pages that inadvertently block Opera. The script file is automatically distributed by Opera Software ASA, and can be used to apply fixes to specific Web sites, and specific scripts.
Browser JavaScript respects your JavaScript preferences, and will not be loaded if JavaScript is disabled.
Note: Opera also provides User JavaScript, which allows you to apply your own enhancements and fixes to Web pages. Additionally, Opera Software ASA runs the Open the Web initiative, which contacts the authors of problematic Web sites.
Keeping up-to-date
- Opera automatically checks for updates to Browser JavaScript once every week. Any updates will be automatically downloaded and applied the next time a page is loaded in Opera.
- You can manually check for updates using .
- Automatic checking is controlled by the
Browser JavaScriptandCheck For New Operasettings in Opera6.ini. - Files are downloaded separately for each user of Opera, and you do not have to be an administrator of your computer to make use of this feature.
- The Browser JavaScript is signed and distributed by Opera Software ASA, and should not be edited.
- The file will be stored in Opera's profile folder. The screen will tell you where the profile folder is.
- Current browser.js status: disabled
If you use a proxy server that requires user name and password to access the internet, please note that Opera will not request user name and password for an authenticating proxy in order to download ua.ini and browser.js. Site patching or upgrade notification will not take place if such proxies are required.
Patches applied by Browser JavaScript
In most cases, when Browser JavaScript applies a fix, a message is posted in the JavaScript console () saying that the page has been changed.
Some of the fixes apply to specific Opera versions, or on specific platforms only.
Site fixes
- sniffing on saab.com and saab.de excludes Opera
- Browser.js status and version reported on browser.js documentation page
- Fixing audio samples, old overlibwms library only detects Opera7
- Fileplanet.com sniffing blocks Opera
- Multiple fixes
- Multiple fixes
- moneta.co.kr relies on IE quirks for CSS positioning
- epa.qld.gov.au site uses capturing load events.
- ford.com flash content does not start playing
- Make "add feeds" dialog work in Y!Mail beta
- Multiple fixes
- Multiple fixes
- Google calendar date selection fails due to order of blur and mousedown events
- HP shopping site is designed for smaller fonts
- Multiple fixes
- Selects are reset if first option is removed in onchange
- UDM on sony.com breaks if insertRule throws exceptions
- Multiple fixes
- Ulead.com old Milonic menu
- Multiple fixes
- able.co.jp uses capturing event listeners
- adobe.com browser sniffing causes endless scrolling
- AirFrance use getYear when they should use getFullYear
- alice.it design breaks because it depends on smaller fonts
- AOL login hidden by IFRAME
- Multiple fixes
- apple.com click tracking overwrites page
- Barnes&Noble uses "required" attributes on elements that aren't required
- bioware.com uses outdated HierMenus
- Multiple fixes
- Bloglines, designMode case sensitivity issue
- bnz.co.nz use getYear when they should use getFullYear
- Multiple fixes
- Budget.com: menu appears behind IFRAME "shim"
- Multiple fixes
- Multiple fixes
- Dancenter use getYear when they should use getFullYear
- Access Florida invalid markup problem
- dowjones.com: No styling when ID as Opera, menus under Flash
- eatsleepsport.com uses SCRIPT for.. event.. syntax, never stops loading
- Emirates.com: broken OpenCube
- Multiple fixes
- AOL: browser warnings for various features of aol.de
- FoxNews: sniffing prevents Flash video features from functioning
- hangame.com SPANs should be inline-block
- styling INPUT with text-transform can confuse users
- speed up back/forward navigation, ensure ads do not re-appear
- Imageshack cancels mousedown event, prevents focusing input
- ipop.co.kr SPAN should be inline-block
- KLM uses Gecko-specific originalTarget
- Multiple fixes
- Multiple fixes
- Ubiest.com uses CSS filters if document.all exists
- maybank2u, onresize event causes a refresh whenever the softkeyboard is opened
- MSNBC sniffing hides Flash content
- mu-mo.net uses SCRIPT for..event.. syntax
- Multiple fixes
- N-Gage plugin sniffing does not give Flash to Mac Opera
- Namooya.com main flash does not appear
- NBC4.tv uses capturing load events
- NBC Olympics site uses capturing load events
- Nectar uses getYear where they should use getFullYear
- Nick.com flash detection fix
- Broken Flash detection on some Nokia sites
- Multiple fixes
- Orbitz new Function() issue workaround
- pda.naver.com appears half-offscreen
- Loading problems on pogo.com because of document.load in frameset event handler scope
- prisjakt.nu capturing load events on back navigation
- CNet videos: document.write adds a script that depends on variables defined later
- SabadellAtlantico use getYear when they should use getFullYear
- Live.com search disappearing menu fix
- Missing automatic resize of Flash object
- Synaptics.com outdated HVMenu
- Teletext focus fix
- time.com script causes reload loop if UA contains "Windows CE"
- United.com flight search problem: hidden images do not load, so no onload event
- Fixing map selection on viamichelin.com (event.button)
- ivillage video does not appear
- NBC.com video problems
- Viewing checks calls createElement with markup strings if document.all exists
- Multiple fixes
- Washington Post picks wrong script branch because site thinks Opera is IE
- Mouseover popups do not appear due to document.all sniffing
- Yellow pages event capture fix
- ZDnet video site plays non-existing files if browser is Opera
- au my page XMLHttp re-use issue
- Selects are reset if an option is changed from onchange.
Patched scripts
- Old versions of the following popular menu scripts, all of which fail in Opera:
- "Sothink menus" versions 3.72 and earlier; changes browser detection to make the menus use the correct code in Opera.
- "Milonic menus": changes browser detection to make the menus use the correct code in Opera.
- "HierMenus": changes browser detection so the menu is not disabled in Opera.
- "Likno AllWebMenus", builds earlier than 498; changes browser detection to make the menus use the correct code in Opera.
- "Menu/Pop Menu": (HV Menu); changes browser detection so the menu is not disabled in Opera.
- "Ultimate Dropdown Menu": changes browser detection so the menu is not disabled in Opera.
- "OpenCube menus": changes browser detection to make the menus use the correct code in Opera.
- "Coolmenus": changes browser detection to make the menus use the correct code in Opera.
- "DynAPI": changes browser detection to make the library use the correct code in Opera.
- "Transmenus": changes browser detection and code to make the library use the correct code in Opera.
Other patches
- Router configuration SCRIPT in OPTION tag fix
- PDF security patch
Note to webmasters
There are several reasons why Opera might modify your pages. These include:
- Opera may prevent a browser detect on your pages from causing problems.
- Opera may fix incompatible, invalid, out-of-date, or problematic code used on your pages.
If you think Opera is modifying your page incorrectly or unnecessarily, or if you have removed the cause of the problems, please mail web-compliance@opera.com.
If you wish to disable Browser JavaScript to allow you to test your fixes, you can do this by setting Browser JavaScript to 0 in Opera6.ini.
