Home Web Front-end JS Tutorial JS IE and Firefox compatibility collection_javascript skills

JS IE and Firefox compatibility collection_javascript skills

May 16, 2016 pm 07:23 PM

1. document.form.item problem
(1) Existing problem:
There are many statements like document.formName.item("itemName") in the existing code, which cannot be run under MF
( 2) Solution:
Use document.formName.elements["elementName"] instead
(3) For other
see 2
2. Collection class object issues
(1) Existing issues :
Many collection class objects in the existing code use () when accessing them. IE can accept it, but MF cannot.
(2) Solution:
Use [] instead as subscript operation. For example: document.forms("formName") is changed to document.forms["formName"].
Another example: document.getElementsByName("inputName")(1) changed to document.getElementsByName("inputName")[1]
(3) Others
3. window.event
(1 )Existing problems:
Using window.event cannot be run on MF
(2)Solution:
MF’s event can only be used at the scene where the event occurs, and this problem cannot be solved for the time being. It can be modified like this:
Original code (can run in IE):

...

New code (can run in IE and MF Run):


...


In addition, if the first line in the new code does not change, it is the same as the old code (that is, the gotoSubmit call does not give parameter), it will still only run in IE, but no error will occur. Therefore, the tpl part of this solution is still compatible with the old code.
4. The problem of using the id of the HTML object as the object name
(1) Existing problems
In IE, the ID of the HTML object can be used directly as the subordinate object variable name of the document. Not possible in MF.
(2) Solution
Use getElementById("idName") instead of idName as an object variable.
5. Problems with using idName string to obtain objects
(1) Existing problems
In IE, you can use eval(idName) to obtain the HTML object with the id of idName, but not in MF.
(2) Solution
Use getElementById(idName) instead of eval(idName).
6. The problem that the variable name is the same as an HTML object id
(1) Existing problems
In MF, because the object id is not used as the name of the HTML object, you can use the same variable name as the HTML object id Variable names cannot be used in IE.
(2) Solution
When declaring variables, always add var to avoid ambiguity, so that it can also run normally in IE.
In addition, it is best not to use the same variable name as the HTML object id to reduce errors.
(3) Other
see question 4
7. Event.x and event.y issues
(1) Existing issues
In IE, the event object has x, y attributes, Not available in MF.
(2) Solution
In MF, the equivalent of event.x is event.pageX. But event.pageX does not exist in IE.
So event.clientX is used instead of event.x. This variable also exists in IE.
event.clientX and event.pageX have subtle differences (when the entire page has scroll bars), but most of the time they are equivalent.
If you want to be exactly the same, you can have a little more trouble:
mX = event.x ? event.x : event.pageX;
Then use mX instead of event.x <script> <BR>function gotoSubmit() { <BR>... <BR>alert(window.event); // use window.event <BR>... <BR>} <BR></script>(3) Others<script> <BR>function gotoSubmit(evt) { <BR>evt = evt ? evt : (window.event ? window.event : null); <BR>... <BR>alert(evt); // use evt <BR>... <BR>} <BR></script> event.layerX exists in both IE and MF. Whether there is any difference in specific meaning has not yet been tested.
8. About frame
(1) Existing problems
In IE, you can use window.testFrame to obtain the frame, but not in MF
(2) Solutions
In terms of the use of frame The main difference between mf and ie is:
If the following attributes are written in the frame tag:

then ie can access the window object corresponding to this frame through id or name
mf can only access the window object corresponding to this frame through name
For example, if the above frame tag is written in the htm inside the top window, then it can be accessed like this
ie: window.top.frameId or window.top .frameName to access this window object
mf: You can only use window.top.frameName to access this window object
In addition, window.top.document.getElementById("frameId") can be used in both mf and ie. To access the frame tag
and switch the content of the frame
through window.top.document.getElementById("testFrame").src = 'xx.htm' or through window.top.frameName.location = 'xx.htm' to switch the content of the frame
For a description of frame and window, please refer to the 'window and frame' article of bbs
and the test under the /test/js/test_frame/ directory
--- -adun 2004.12.09 Modification
9. In mf, the attributes you define must be obtained by getAttribute()
10. There is no parentElement parement.children in mf but use
parentNode parentNode.childNodes
childNodes The meaning of the subscript is different in IE and MF. MF uses DOM specifications, and blank text nodes will be inserted into childNodes.
Generally, this problem can be avoided through node.getElementsByTagName().
When a node is missing in html, IE and MF interpret parentNode differently, for example


 
 



The value of input.parentNode in MF is form, while the value of input.parentNode in IE is an empty node
There is no removeNode method for nodes in MF, you must use the following method node.parentNode.removeChild(node)
11.const problem
(1) Existing problem:
The const keyword cannot be used in IE. For example, const constVar = 32; This is a syntax error in IE.
(2) Solution:
Do not use const and use var instead.
12. body object
MF’s body exists before the body tag is fully read by the browser, while IE must exist after the body is fully read
13. url encoding
In js, if you write the url, write it directly & don't write it. For example, var url = 'xx.jsp?objectName=xx&objectEvent=xxx';
frm.action = url. Then it is very likely that the url will not be displayed normally and the parameters will not be displayed properly. If it is not transmitted to the server correctly
usually the server will report an error parameter not found
Of course, the exception is if it is in tpl, because tpl conforms to the xml specification and requires & to be written as &
Generally MF cannot recognize & in js
14. nodeName and tagName issues
(1) Existing issues:
In MF, all nodes have nodeName values, but textNode does not have tagName values. In IE, there seems to be a problem with the use of nodeName (the specific situation has not been tested, but my IE has died several times).
(2) Solution:
Use tagName, but check whether it is empty.
15. Element attributes
The input.type attribute is read-only under IE, but it can be modified under MF
16. Problems with document.getElementsByName() and document.all[name]
(1) Existing problems:
In IE, neither getElementsByName() nor document.all[name] can be used to obtain div elements (it is not known whether there are other elements that cannot be obtained).
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I create and publish my own JavaScript libraries? How do I create and publish my own JavaScript libraries? Mar 18, 2025 pm 03:12 PM

Article discusses creating, publishing, and maintaining JavaScript libraries, focusing on planning, development, testing, documentation, and promotion strategies.

How do I optimize JavaScript code for performance in the browser? How do I optimize JavaScript code for performance in the browser? Mar 18, 2025 pm 03:14 PM

The article discusses strategies for optimizing JavaScript performance in browsers, focusing on reducing execution time and minimizing impact on page load speed.

What should I do if I encounter garbled code printing for front-end thermal paper receipts? What should I do if I encounter garbled code printing for front-end thermal paper receipts? Apr 04, 2025 pm 02:42 PM

Frequently Asked Questions and Solutions for Front-end Thermal Paper Ticket Printing In Front-end Development, Ticket Printing is a common requirement. However, many developers are implementing...

How do I debug JavaScript code effectively using browser developer tools? How do I debug JavaScript code effectively using browser developer tools? Mar 18, 2025 pm 03:16 PM

The article discusses effective JavaScript debugging using browser developer tools, focusing on setting breakpoints, using the console, and analyzing performance.

How do I use source maps to debug minified JavaScript code? How do I use source maps to debug minified JavaScript code? Mar 18, 2025 pm 03:17 PM

The article explains how to use source maps to debug minified JavaScript by mapping it back to the original code. It discusses enabling source maps, setting breakpoints, and using tools like Chrome DevTools and Webpack.

Getting Started With Chart.js: Pie, Doughnut, and Bubble Charts Getting Started With Chart.js: Pie, Doughnut, and Bubble Charts Mar 15, 2025 am 09:19 AM

This tutorial will explain how to create pie, ring, and bubble charts using Chart.js. Previously, we have learned four chart types of Chart.js: line chart and bar chart (tutorial 2), as well as radar chart and polar region chart (tutorial 3). Create pie and ring charts Pie charts and ring charts are ideal for showing the proportions of a whole that is divided into different parts. For example, a pie chart can be used to show the percentage of male lions, female lions and young lions in a safari, or the percentage of votes that different candidates receive in the election. Pie charts are only suitable for comparing single parameters or datasets. It should be noted that the pie chart cannot draw entities with zero value because the angle of the fan in the pie chart depends on the numerical size of the data point. This means any entity with zero proportion

Who gets paid more Python or JavaScript? Who gets paid more Python or JavaScript? Apr 04, 2025 am 12:09 AM

There is no absolute salary for Python and JavaScript developers, depending on skills and industry needs. 1. Python may be paid more in data science and machine learning. 2. JavaScript has great demand in front-end and full-stack development, and its salary is also considerable. 3. Influencing factors include experience, geographical location, company size and specific skills.

TypeScript for Beginners, Part 2: Basic Data Types TypeScript for Beginners, Part 2: Basic Data Types Mar 19, 2025 am 09:10 AM

Once you have mastered the entry-level TypeScript tutorial, you should be able to write your own code in an IDE that supports TypeScript and compile it into JavaScript. This tutorial will dive into various data types in TypeScript. JavaScript has seven data types: Null, Undefined, Boolean, Number, String, Symbol (introduced by ES6) and Object. TypeScript defines more types on this basis, and this tutorial will cover all of them in detail. Null data type Like JavaScript, null in TypeScript

See all articles