Which browsers support Microsoft JScript?
Only IE (and IE-based browsers like Maxthon) and, if you consider the windows desktop sidebar a browser, the windows desktop sidebar which uses IE internally. So don't use it unless the latter is your target environment.
Other browsers support JavaScript though which is what's used for active content on websites nowadays.
JScript is the name that Microsoft has chosen for its implementation of ECMAScript, Document Object Model and related APIs. Microsoft does not call it JavaScript, because Oracle holds the copyright on that name. Everyone else calls it JavaScript.
Only Internet Explorer and browsers based on it's rendering engine support true JScript (i.e. including it's omissions from, deviations from and additions to the standards).
Related
I am recently reading about Node.js and got an interesting statement about JavaScript and Internet Explorer:
Internet Explorer doesn’t actually support JavaScript or ECMAScript; it supports a language variety called JScript. In recent years, JScript has fully supported the ECMAScript 3 standard and has some ECMAScript 5 support. However, JScript also implements proprietary extensions in the same way that Mozilla JavaScript does and has features that ECMAScript does not.
Source: http://chimera.labs.oreilly.com/books/1234000001808/ch01.html#chap2_id35941400
Frankly speaking I am totally unable to understand the above statement. I know Microsoft has its own VBScript and it allowed JavaScript in IE that is why JS is more popular than any other scripting language. Is this statement true? If yes then the scripting engine of IE does the translations of native JavaScript to JScript or what is the other case?
ECMAScript is the official standard, JavaScript and JScript are implementations of that standard. Just like CPython and Jython are implementations of Python.
As so often if it's about browsers, they both don't necessarily fully support the standard or provide additional, non-standard features, partly because they started evolving when an official standard didn't exist yet.
From Wikipedia about JScript:
[Microsoft] did not want to deal with Sun about the trademark issue, and so they called their implementation JScript. A lot of people think that JScript and JavaScript are different but similar languages. That's not the case. They are just different names for the same language, and the reason the names are different was to get around trademark issues
From the Microsoft documentation about JScript:
JScript is the Microsoft implementation of the ECMA 262 language specification (ECMAScript Edition 3). With only a few minor exceptions (to maintain backwards compatibility), JScript is a full implementation of the ECMA standard.
well, this mainly depends on the version of IE you are using, as you havent mentioned that no one can say that for sure
I think it is not like that instead Microsoft gives you an option to enable Javascript on your IE like this:
Pull down your TOOLS menu
Select Internet Options...
Click the Security tab on the top of the resulting window
Click the Custom Level button
Scroll the list down to the entry for Active Scripting
Check the Enable radio button.
Click OK in all dialogs.
Also Jscript is same as Javascript
JScript is Microsoft's dialect of the ECMAScript standard[2] that is
used in Microsoft's Internet Explorer.
JScript is implemented as a
Active Scripting engine. This means that it can be "plugged in" to OLE
Automation applications that support Active Scripting, such as
Internet Explorer, Active Server Pages, and Windows Script Host.[3] It
also means such applications can use multiple Active Scripting
languages (e.g., JScript, VBScript, PerlScript, etc.).
It was possible to sign with digital certificate in IE and Netscape
http://bozhobg.wordpress.com/2009/04/16/how-to-create-a-digital-signing-solution-with-only-javascript/
What's the equivalent in IE 9 ?
You're going to have a problem with this.
The clue is in the code in the link you provided. Specifically, where it uses new ActiveXObject().
ActiveX is a very old technology and it has severe security issues. For this reason, it's use has been discouraged for some time (this was the case a long time before the article you linked to was written).
IE9 does still support it, but only for legacy reasons; its use is strongly discouraged, and you will need to go to the browser config and disable some security settings in order to get it working.
If you do get activeX working in IE9, you'll also need to make sure you have the relevant activeX controls installed on your PC that actually do the work (I've not used the ones in question, so I can't advise on them). In addition, since the activeX technology is deprecated, you may find that the activeX control you need to use may not have been kept up-to-date. This may affect whether it works with newer versions of IE or Windows.
I heard E4X; a New extension to the javascript gives direct support for XML to JavaScript.
Please tell me currently what browsers have support for this.
According to Wikipedia:
E4X is supported by Mozilla's Rhino, used in OpenOffice.org and several other projects, and SpiderMonkey, used in Firefox, Thunderbird, and other XUL-based applications. It is also supported by Tamarin, the JavaScript engine used in the Flash virtual machine. It is not supported by Nitro (Safari), V8 (Google Chrome), Opera, nor Internet Explorer.
What's the best place to find full documentation for the DOM, JavaScript, and CSS?
There are many reasons why there isn't just one site that displays every single JavaScript method or function, every DOM manipulative option, or every CSS property. The main reason being that there are multiple browsers with which have different engines.
Most popular engines being used today are:
Trident, Gecko, Webkit, and Presto.
JavaScript and CSS are an "always-in-progress" project, so finding all the available api's might be a little hard to find. Though, there are resources out there to help you with particular browsers.
I find these pretty helpful:
MDN Doc Center (Gecko)
Good for a general use case for just about any browser, though they do provide more info on their specific properties, such as -mos (Gecko) in CSS.
HTML Reference: https://developer.mozilla.org/en/HTML/Element
JavaScript Reference: https://developer.mozilla.org/en/JavaScript/Reference
CSS Reference: https://developer.mozilla.org/En/CSS
DOM Reference: https://developer.mozilla.org/en/Gecko_DOM_Reference
Most popular browsers using the Trident engine: Firefox, Camino, Flock, Seamonkey, Epiphany, Netscape
Webkit
One of my favorite engines to work with! It's what powers Safari and what Chrom is based off.
DOM: https://developer.apple.com/...riJSProgTopics/WebKitJavaScript.html
HTML: https://developer.apple.com/library/safari/.../SafariHTMLRef
CSS: https://developer.apple.com/library/safari/.../SafariCSSRef
Most popular browsers using the WebKit engine: Safari, Google Chrome, Epiphany, Konqueror
Opera Specs (Presto)
Not the most helpful thing in the world, but gives you a good idea of what the presto engine currently supports
Link: http://www.opera.com/docs/specs/productspecs/
Most popular browsers using the Presto engine: Opera Desktop/Mobile/Mini, Nintendo DS, Wii Internet Channel
MSDN (for Trident?)
I rarely design just for Internet Explorer anymore (if at all), but this does look a little promising:
Link: http://msdn.microsoft.com/en-us/library/aa155073.aspx
Most popular browsers using the Trident engine: Internet Explorer, Avant Browser, Maxathon, AOL Browser
If all else fails, refer to W3 (and I don't mean W3 Schools; the two aren't event affiliated):
CSS: http://www.w3.org/TR/CSS/
DOM: http://www.w3.org/DOM/
ECMAScript (where JavaScript derives from) has an official PDF for specifications as well:
JavaScript: http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
The Mozilla Foundation continues to add new language features to JavaScript. They're up to version 1.8 now where 1.5 was more or less the ECMA baseline.
However, Firefox is the only browser that supports the latest version and IE is firmly stuck at a 1.5-equivalent JScript.
What purpose do the Firefox-only extensions serve? Or are they just lying dormant until (and if) the rest of the browsers catch up?
Firefox, Thunderbird, and other XUL apps also have large portions of themselves written in JavaScript. A more featureful JavaScript means a better development environment for Firefox and other Mozilla apps.
Extending the language is a good idea, even if only one browser is doing it - eventually it will prove itself and be made into the standard at which time other browsers will have to catch up.
Otherwise, how can progress be made - Microsoft does this all the time: would XMLHttpRequest have ever made it into the standards if Internet Explorer wouldn't have implemented it first?
From the Mozilla perspective the purpose of these changes, except for adding more capabilities for use by web developers, is to lead up to JavaScript 2.0, that is being developed as the next revision of ECMA 262 (revision 4) TC39 workgroup.
Future browsers will support JavaScript 2.0. In the mean time, developers are invited to take advantage of these extra features - natively in Firefox and using JavaScript libraries that provide backward compatibility with Internet Explorer. I find this very useful.
Also, it may be interesting to note that Webkit (the engine developed by KDE and used by Safari, Chrome and several free software browsers) supports JavaScript 1.7.
The biggest reason at the moment for improved JavaScript is for extension writers, who need not worry about cross-browser compatiblity.
JavaScript is a trademark by Sun which was licensed to Netscape and is now held by the Mozilla Foundation. Microsoft has their own implementation of the language called JScript, but there are others (eg. DMDScript).
ECMAScript was an afterthought to add a common baseline to the various implementations. So it's only natural that language development continues outside the standards committee, which is free to add the changes pioneered by the implementors in future revisions of the standard (eg the array extras introduces in JS1.6 will be in ES3.1).