До JavaScript 1.4 не было глобальных аргументов Array, и невозможно реализовать массив аргументов самостоятельно без высокоразвитого исходного фильтра. Это означает, что для языка будет невозможно поддерживать обратную совместимость с Netscape 4.0 и Internet Explorer 4.0. Итак, сразу могу сказать, что нет , вы не можете сделать все совместимыми со стандартами браузера.
Post-netscape, вы можете реализовать почти все функции в ядре языка в самом JavaScript. Например, я закодировал все методы объекта Array в коде JavaScript на 100%.
http://openjsan.org/doc/j/jh/jhuni/StandardLibrary/1.81/index.html
Вы можете увидеть мою реализацию Array здесь, если перейти по ссылке, а затем перейти к Array и затем «source».
То, на что, вероятно, ссылается большинство из вас, - это реализация объектов DOM самостоятельно, что гораздо более проблематично. Используя VML, вы можете реализовать тег Canvas во всех современных браузерах, однако в Internet Explorer вы получите ошибочную / едва работающую производительность, поскольку VML - это разметка, которая не подходит для реализации тега Canvas ...
http://code.google.com/p/explorercanvas/
Flash / Silverlight: С помощью любого из них вы можете реализовать тег Canvas, и он будет работать достаточно хорошо, вы также можете реализовать звук. Однако, если у пользователя нет плагинов для браузера, вы ничего не можете сделать.
http://www.schillmania.com/projects/soundmanager2/
Абстракции DOM: Что касается DOM, вы можете абстрагироваться от DOM, реализовав свой собственный объект Event, такой как в случае QEvent, или даже реализовав свой собственный объект Node, как в Однако в случае с YAHOO.util.Element они обычно имеют некоторые незначительные изменения в стандартном API, поэтому люди обычно просто абстрагируются от стандарта, и существуют сотни случаев абстрагирования библиотек.
http://code.google.com/p/qevent/
Это, наверное, лучший ответ на ваш вопрос. Это делает браузеры максимально совместимыми со стандартами.
http://dean.edwards.name/weblog/2007/03/yet-another/