This article is quite useful to me, so I mark it and reprint it.
Reprinted from: nczonline
Microsoft just released the first preview version of Internet Explorer 11 for Windows 8.1 last week. We've confirmed some of the new features in Internet Explorer 11, including support for WebGL, prefetching, prerendering, flexbox, mutation observers, and support for other web standards. But what's more interesting is that although it is called Internet Explorer 11, it is no longer IE.
This is also the first time that Microsoft has actually removed some features of Internet Explorer: changing the user-agent string, which makes a lot of code that determines whether the browser is IE unable to work, including some JavaScript The isIE() method returns false when executed on Internet Explorer 11. Fortunately, Internet Explorer 11 supports web standards very well, so the previous IE-specific behaviors are no longer needed.
In Internet Explorer 11, user-agent is much shorter than previous versions, and the most critical MSIE keywords have been removed:
The above user-agent You will also notice the addition of the Gecko logo, and Safari is the first browser to be labeled with Gecko.
In the past, most people used MSIE to judge whether the IE browser code cannot work. You can use Trident string to judge instead. The Trident logo was introduced in IE9.
In addition, Microsoft also changed the navigator object:
? The value of navigator.appName is "Netscape"
? The value of navigator.product is "Gecko"
This may be a developer trick, but the behavior is actually specified in HTML5. In HTML5, these two attributes must return the above corresponding values. This is a very strange rule. What is even more strange is that Internet Explorer 11 complies with this rule.
This will cause some JavaScript code that determines the browser model based on the navigator object to recognize Internet Explorer 11 as a Gecko-based browser.
document.all and friends
Starting from IE 4, document.all plays an important role in IE. Compared with document.getElementById(), document.all is an IE method for obtaining a reference to an element. Although IE 5 added support for DOM, document.all has been used until IE 10. It was finally deprecated in Internet Explorer 11, which means that methods using document.all in Internet Explorer 11 will likely cause execution failure, although the code using document.all will actually work.
Another thing to be abandoned is the attachEvent() method, which is used to add event handlers, and the corresponding detachEvent() is used to remove event handlers. These two methods will be removed in Internet Explorer 11. To remove these two methods, you need to use the following logic instead:
Of course, it is recommended that you first use a standard browser for testing to ensure that the code will not be affected by the removal of attachEvent() implement. But the internet is full of bad monitoring code, and you just have to make sure your application is tested against good standards.
Removed features also include:
All of these deprecated methods have standards-based alternatives. If you are using the standard method, congratulations, you can directly support Internet Explorer 11.
Conclusion
It seems that Internet Explorer 11 should be the best in the Internet Explorer family version. By finally removing some of the devilish bugs of the past, Microsoft is preparing a truly standard browser for everyone.
Update: document.all was not actually removed, but is deprecated.