JQuery – Script1024 Error & IE’s Compatibility Mode

We were testing a feature in Firefox, Chrome and IE 11 and ran into an issue wherein, JQuery would not load in IE11. Client side callbacks were not being processed. Using IE’s Developer Tools / Console window showed the error below.

screen_shot_2016-10-18_at_8_18_02_pm

Had us stumped for a few minutes and setting the Compatibility mode for Intranet Sites got the page working again.  I disabled Compatibility mode, but the page continued to work and was not able to reproduce the error. Within the Corporate Intranet, “Display intranet sites in compatibility view” setting had been enabled by default. I had disabled this setting while working on something else. Adding the Meta Tag & the proper HTML5 document tag resolved the issue. This allows for the Compatibility mode to be disabled if needed.

Another odd behavior I noticed is that  as soon as the page is loaded in Compatibility mode, it works without the DocType and Meta tag being present on the page. Removing or adding the Tags to the page and refreshing does not change behavior, it continues to work. Very difficult while trying to reproduce an issue. Developer Toolbar hung in the middle of the Debug session and had to kill IE and launch it again. That’s when I realized that a new session is required after disabling compatibility mode to re-trigger those exceptions and finally confirm the JQuery piece worked. Phew!!!

It was poor code to begin with, but the Browsers were forgiving enough to add to the frustration.

<!DOCTYPE html><meta http-equiv="X-UA-Compatible" content="IE=Edge">
Advertisements

JavaScript – A Laundry list…

This isn’t a JavaScript Tutorial, but rather a Laundry list of Topics that will help you get there. Google for more information or go to youtube and search for specific video’s that explain the following terminology. Will save you tons of time. We all have a unique learning style. I have excluded specific topics like loops etc as these are foundations that all programmers are used to.

  1. Browse thru the Basics
  2. console.log
    • Google for more information and to favorite browser. This will save you a lot of time.
  3. Inline JavaScript
  4. HTML Script Tag
  5. Variables
  6. Scope
  7. Hoisting
  8. Data Types. Understand the Object Data Type in Particular
  9. Functions
    • Functions or Traditional Functions
    • Anonymous Functions or Function Expressions
    • Immediately Invoked Function Expression (IIFE), Closure, Self Executing
    • Nested Functions
    • Anonymous Function
    • Callback Functions
    • Functions that return functions, check out David Walsh’s article here
    • Invoking functions using () vs function definitions
  10. Chaining
  11. “arguments” object
  12. Custom Objects
    • Prototypes
    • Extending Prototypes.
    • Creating Methods (using anonymous functions)
    • Creating Properties
  13. JavaScript Debugging
  14. Monitor Network Traffic using the Browser’s Debugging Tools like Firebug etc
  15. RegEx & RegEx declaration, Escape Sequences
  16. Exception Handling. Do’s and Dont’s
  17. Frameworks. Study the code to understand coding style etc
  18. Performance Considerations
    • Understand DOM
    • Understand BOM
    • Variable Scope
    • Reflow
    • Minification (so you can comment your code)
    • CDN
  19.  To further understand your knowledge learn HTML 5 & CSS. This will help understand JS Frameworks like Bootstrap better.
  20. ECMA JavaScript Specification
  21. Go back to the beginning and now checkout every language feature.

There is more to JavaScript than this list, but this should get you to a comfortable start.

Raphaël

I had the opportunity to work with VML (Vector Markup Language) in the mid 2000 using Microsoft’s VML Editor. We then used these prototypes as libraries in ASP. Endless possibilities, but limited browser support. Welcome to the world of SVG (Scalable Vector Graphics) .

Dmitry’s JavaScript Framework to leverage the SVG / VML spec is a piece of art. The examples listed on this page are amazing. Visit the link below to see for yourself.

http://dmitrybaranovskiy.github.io/raphael/