1. Document.formName.item ("itemName") Проблема
Описание задачи: IE, вы можете использовать document.formname.item ("itemname") или document.formname.elements ["elementName"]; В Firefox вы можете использовать только document.formname.elents ["elementName"].
Решение: используйте document.formname.elements ["elementName"] единым образом.
2. Проблема с объектом сбора
Описание проблемы: IE, вы можете использовать () или [], чтобы получить объект класса коллекции; В Firefox вы можете использовать только [], чтобы получить объект класса коллекции.
Решение: используйте [], чтобы получить объекты класса сбора единым образом.
3. Проблемы с атрибутами пользовательских атрибутов
Описание задачи: в IE вы можете использовать метод получения регулярных атрибутов для получения пользовательских атрибутов, или вы можете использовать getattribute () для получения пользовательских атрибутов; В Firefox вы можете использовать только getattribute () для получения пользовательских атрибутов.
Обходной путь: равномерно получить пользовательские атрибуты через getattribute ().
4. eval ("idname") Проблема
Описание задачи: IE, вы можете использовать Eval ("iDname") или GetElementById ("idName"), чтобы получить HTML -объект с iDname; В Firefox вы можете использовать только GetElementById («idName»), чтобы получить HTML -объект с idName.
Решение: используйте GetElementById ("idName"), чтобы получить объект HTML с ID как idName.
5. Проблема имени переменной и идентификатор определенного объекта HTML
Описание задачи: под т.е. идентификатор объекта HTML может использоваться непосредственно в качестве имени переменной подчиненного объекта документа, но не в Firefox; Под Firefox имя переменной, которое совпадает с идентификатором объекта HTML, может использоваться, но не в IE.
Обходной путь: используйте Document.getElementById ("iDname") вместо Document.IdName. Лучше всего не принимать имена переменных с тем же идентификатором объекта HTML, чтобы уменьшить ошибки; При объявлении переменных добавьте ключевое слово var, чтобы избежать двусмысленности.
6. Const. Проблема
Описание задачи: В Firefox вы можете использовать ключевое слово const или ключевое слово var для определения констант; В IE вы можете использовать только ключевое слово var для определения констант.
Решение: используйте ключевое слово var, чтобы равномерно определить константы.
7. Проблема атрибута input.type
Описание задачи: свойство input.type в соответствии с т.е. только для чтения; но свойство входов.
Решение: не изменяйте свойство input.type. Если вам нужно изменить его, вы можете сначала скрыть исходный ввод, а затем вставить новый входной элемент в той же позиции.
8. Window.Event Проблема
Описание задачи: Window.Event может работать только под IE, а не в Firefox, потому что событие Firefox может использоваться только на сцене, где происходит событие.
Решение: добавьте параметры события в функцию, где происходит событие, и используйте var myevent = evt? Evt: (window.event? Window.event: null)
Пример:
<input type = "button" onclick = "dosomething (event)"/> <script language = "javascript"> функция dosomething (evt) {var myevent = evt? evt: (window.event? window.event: null) ...}9. Event.x и Event.y Проблемы
Описание задачи: под т.е. ровный объект имеет атрибуты x и y, но нет атрибутов Pagex и Pagey; Под Firefox у ровного объекта есть атрибуты Pagex и Pagey, но нет атрибутов x и y.
Решение: var myx = event.x? Event.x: Event.pagex; var myy = event.y? Event.y: Event.pagey;
Если вы рассмотрите 8 -й выпуск, просто используйте Myevent вместо события.
10. Event.srcelement Проблема
Описание задачи: в соответствии с т.е. vese объект имеет свойство Srcelement, но нет целевого свойства; В соответствии с Firefox у Evel Evloy объект имеет целевое свойство, но нет свойства Srcelement.
Решение: используйте srcobj = event.srcelement? Event.srcelement: event.target;
Если вы рассмотрите 8 -й выпуск, просто используйте Myevent вместо события.
11. window.location.href Проблема
Описание проблемы: в IE или Firefox2.0.x вы можете использовать window.location или window.location.href; В Firefox1.5.x вы можете использовать только Window.location.
Обходной путь: используйте window.location вместо window.location.href. Конечно, вы также можете рассмотреть возможность использования метода location.replace ().
12. Модальные и немодальные проблемы с окном
Описание задачи: под т.е. модальные и немодальные окна могут быть открыты через ShowModaldialog и ShowmodelessDialog; Под Firefox это не может.
Решение: используйте window.open (pageurl, имя, параметры), чтобы открыть новое окно.
Если вам нужно перенести параметры в окне дочернего окна обратно в родительское окно, вы можете использовать Window.Pener в окне ребенка, чтобы получить доступ к родительскому окну. Если родительское окно нужно контролировать окно ребенка, используйте var subwindow = window.open (pageurl, имя, параметры); Чтобы получить недавно открытый окно -объект.
Тринадцать, кадр и iframe Проблемы
Следующий кадр - это пример:
(1) Объект доступа к кадре
Т.е. используйте window.frameid или window.frameName, чтобы получить доступ к этому объекту кадра;
Firefox: используйте window.frameName для доступа к этому объекту кадра;
Решение: используйте window.document.getElementbyId ("frameId") для доступа к этому объекту кадра;
(2) Содержание рамки переключения
Как в IE, так и в Firefox вы можете использовать window.document.getElementById ("frameId"). Src = "webjx.com.html" или window.framename.location = "webjx.com.html", чтобы переключить контент кадра;
Если вам нужно передать параметры в кадре обратно в родительское окно, вы можете использовать родительское ключевое слово в кадре для доступа к родительскому окну.
14. Проблема загрузки тела
Описание задачи: объект тела Firefox существует до того, как тег тела полностью зачитывается браузером; В то время как объект тела IE должен существовать после того, как тег тела полностью читается в браузере.
[Примечание] Эта проблема еще не была проверена и будет изменена после проверки.
[Примечание] Было доказано, что вышеуказанные проблемы не существуют в IE6, Opera9 и Firefox2. Простой сценарий JS может получить доступ к всем объектам и элементам, которые были загружены до сценария, даже если этот элемент еще не был загружен.
15. Метод делегирования событий
Описание задачи: в т.е. используйте Document.Body.onload = Inject; где функция inject () была реализована до этого; В Firefox используйте document.body.onload = inject ();
Решение: Использовать Document.body.onload = new Function ('inject ()'); или document.body.onload = function () {/* Вот код*/}
[Примечание] Разница между функцией и функцией
16. Разница между родительским элементом, доступным
Описание проблемы: в соответствии с т.е. используйте obj.parentelement или obj.parentnode, чтобы получить доступ к родительскому узлу OBJ; Под Firefox используйте obj.parentnode, чтобы получить доступ к родительскому узлу OBJ.
Решение: Поскольку как Firefox, так и IE поддерживают DOM, OBJ.ParentNode используется для доступа к родительскому узлу OBJ.
17. Проблема внутреннего текста.
Описание проблемы: внутренний текст работает должным образом в IE, но InnerText не работает в Firefox.
Обходной путь: используйте TextContent вместо внутреннего текста в браузерах, не связанных с ИМ.
Пример:
if (navigator.appname.indexof ("explorer")> -1) {document.getElementById ('element'). innerText = "my Text"; } else {document.getElementById ('element'). TextContent = "; мой текст"; }[Примечание] Innerhtml поддерживается браузерами, такими как IE и Firefox. Другие, такие как Overhtml, поддерживаются только IE, поэтому лучше не использовать его.
18. Задачи таблицы.
Описание задачи: IE, Firefox и другие браузеры имеют разные операции на таблице. IE не разрешается назначать значения Innerhtml для таблицы и Tr. При использовании JS использование метода AppendChild не работает. Document.AppendChild поддерживает Firefox при вставке рядов в таблицы, но IE не поддерживает их.
Решение: вставьте ряды в Tbody, не вставляйте их непосредственно в таблицы
Решение:
// Добавить пустую линию в таблицу: var row = otable.insertrow (-1); var cell = document.createElement ("td"); cell.innerhtml = ""; cell.classname = "xxxx"; row.appendchild (cell);[Примечание] Рекомендуется использовать наборы Framework для эксплуатации таблиц, таких как jQuery.
• Получите количество рядов и столбцов таблицы
В IE вы можете использовать следующий код, чтобы получить количество строк и столбцов:
var Detailt = grid.getTable ("11"); // Получить длину строки var r = detailt.rows.length; // Получить длину столбца var l = detailt.cells.length;И получить длину колонны в Firefox или Google недействительна.
Решение:
var Detailt = grid.getTable ("11"); // Получить длину строки var r = detailt.rows.length; // Получить длину столбца var l = detailt.rows [0] .cells.length;19. Проблема ширины объекта и назначения высоты
Описание задачи: утверждение, похожее на Obj.style.height = imgobj.height в Firefox, является недействительным.
Решение: используйте obj.style.height = imgobj.height + 'px' в форме;
20. setattribute ('style', 'color: red;')
Firefox поддерживает (за исключением т.е. все браузеры теперь поддерживают его), т.е. не поддерживает его
Решение: не setattribute ('style', 'color: red')
Используйте object.style.csstext = 'color: red;' (Есть исключения из этого письма)
Лучший способ - использовать все вышеперечисленные методы, и это будет надежно.
21. Настройка имени класса
setattribute ('class', 'styleclass')
Firefox поддерживает, но IE не поддерживает (укажите имя атрибута - это класс, т.е. не установит атрибут класса элемента. Наоборот, т.е. автоматически распознает атрибут ClassName при использовании SetAttribute)
Решение:
setattribute ('class', 'styleclass') setattribute ('classname', 'styleclass') или непосредственно object.classname = 'styleclass';И IE, и FF поддержка объекта. ClassName.
22. Установить события с SetAttribute
var obj = document.getElementbyId ('objid');
obj.setattribute ('onclick', 'funcitonname ();');
Firefox поддерживает, но IE не поддерживает
Решение:
В т.е. точечная нотация должна использоваться для обозначения требуемого обработчика событий, и анонимные функции должны быть назначены ему.
следующее:
var obj = document.getElementbyId ('objid'); obj.onclick = function () {fucntionName ();};Этот метод поддерживается всеми браузерами
23. Создать радиобатчу
Браузеры, кроме IE
var rdo = document.createElement ('input'); rdo.setattribute ('type', 'radio'); rdo.setattribute ('name', 'radiobtn'); rdo.setattribute ('value', 'reted');Т.е.:
var rdo = document.createElement ("<input name =" radiobtn "type =" radio "value =" cherced " />");Решение:
Эта разница отличается от предыдущего. На этот раз это совершенно другое, поэтому нет общего способа его решить, поэтому только если-эльсе
К счастью, т.е. может распознать атрибут уникального документа, который другие браузеры не могут распознать. Проблема решена.
Быстрое решение 23 задач совместимости с несколькими браузерами в JavaScript-это полный контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.