Подтвердить что ты не робот

Где документируется API DOM JavaScript?

Я программист на C/С++, и сейчас я играю с некоторым кодом Javascript, и у меня возникают проблемы с поиском документации для стандартных библиотек Javascript, доступных в браузере.

В частности, я устанавливаю функцию обратного вызова onload на HTMLImageElement, созданном с помощью new Image(). Я также хочу прочитать о свойстве src, так как он имеет нестандартное поведение - когда это свойство назначено, изображение перезагружается.

Mozilla имеет некоторую скелетную документацию по различным атрибутам здесь: https://developer.mozilla.org/en/DOM/Image Здесь нет документации, только список свойств. Свойство onload не упоминается. Свойство src указано, но на нем нет документации.

MSDN имеет лучшую документацию: http://msdn.microsoft.com/en-us/library/cc197055(VS.85).aspx.

Мой вопрос: "Где стандартные документы"? Является ли Image() глобальной переменной или является ли это свойство window глобальным объектом? Кто пишет API для window и document? Есть ли стандарт, или каждый браузер просто копирует друг друга?

4b9b3361

Ответ 1

DOM на самом деле является отдельной вещью для JavaScript. Доступ к DOM можно получить с других языков, таких как VBScript в IE. И языки программирования общего назначения, такие как Java, Python, PHP и т.д., Имеют собственные библиотеки DOM на основе браузера.

Основные операции DOM, которые работают как с HTML, так и с общими документами XML, можно найти в DOM Core; HTML-документы получают дополнительные методы, определенные в DOM HTML. Это последние "уровни поддержки, определяемые W3; не все браузеры поддерживают все в DOM Level 3 Core. Но DOM Level 1 Core довольно прочный.

Смутно, DOM HTML развивается дальше, но не в его собственной спецификации DOM. Вместо этого он является частью HTML5. Это стандартизирует множество расширений, которые уже широко поддерживаются в браузерах, например innerHTML, и добавляет кучу больше материалов, которые еще не получили широкого применения (и могут быть изменены до стандартизации документа).

DOM - это только объектная модель документа: она указывает, что вы получаете внутри объекта document. Он не указывает другие функции браузера, такие как содержимое window. Объектная модель браузера (BOM) ранее была нестандартной; HTML5 делает первые попытки правильно документировать его.

В HTML5 также указаны части объектной модели браузера (BOM), которые ранее не были стандартизованы. Такие вещи, как window, которые напрямую не связаны с содержимым document.

Результатом всего этого является то, что нет ни одного документа, на который вы можете пойти, который расскажет вам все о том, какие методы и свойства у вас есть в веб-скриптах. Некоторое время DOM Core плюс HTML5 будет охватывать все это, но сегодня HTML5 включает в себя то, на что вы не можете положиться, и не совсем то, что можно прочитать в руководствах даже по стандартам стандартов. Так что да, боюсь, вам придется продолжать проверять MDC и MSDN для массовой поддержки.

Является ли 'Image' глобальной переменной или является ли это свойство 'window' глобальным объектом?

Image определяется HTML5 как член объекта window, который, будучи глобальным контекстом, позволяет ссылаться на него как на Image..., что не совсем то же самое, что и глобальную переменную, но она достаточно близка для большинства.

Это функция-конструктор, которая возвращает объект DOM, реализующий интерфейс HTMLImageElement (из HTML-кода DOM Level 1, расширенный в HTML5). Он был первоначально представлен в Netscape 3.0 как механизм предварительной загрузки изображений; плюс уже созданные изображения можно получить из document.images, чтобы изменить их src. Сегодня new Image() не имеет ничего общего с document.createElement('img').

Я также хочу прочитать о свойстве 'src', поскольку он имеет нестандартное поведение - когда это свойство назначено, изображение перезагружается.

Ну, изображение не будет перезагружено обязательно, но это может привести к тому, что событие load будет запущено в некоторых браузерах. К сожалению, это не стандартизировано (даже в HTML5, насколько я вижу). IE, Firefox и Opera load в каждом наборе src (даже если src не изменен), тогда как WebKit (Chrome/Safari) только запускает его при загрузке исходного изображения.

Вот почему есть сайты с большими таблицами различного поведения браузера, и почему мы все еще должны активно тестировать в разных браузерах.

Ответ 2

Новое fave: http://devdocs.io/dom/ (Devdocs.io в целом довольно классный для многих справочных материалов)

(старше) Мне очень нравится эта ссылка DOM: http://krook.org/jsdom/

Ответ 3

Я предполагаю, что стандарт написан W3C.

http://www.w3.org/TR/REC-DOM-Level-1/

Вы также можете найти стандарты для DOM Level 2 и 3;)

Ответ 4

Для новичков это действительно поможет понять, с чем вы работаете, и разделять понятия:

  • Javascript (язык, используемый для доступа к DOM, могут использоваться другие языки сценариев),

  • HTML или XML-документ (разметка, составляющая основу веб-страницы)

  • и DOM (модель документа, который служит в качестве API, позволяющий управлять структурой и содержимым документа).

http://css-tricks.com/dom/

Он также ссылается на эти информационные документы:

W3C: Что такое объектная модель документа?
MDN: Введение - Объектная модель документа
Википедия: Объектная модель документа

Зная, как DOM развивается в историческом контексте, также помогает понять его структуру и как работать с ней, и это также рассматривается в приведенных выше ссылках.

Ответ 5

Я иногда использую javascriptkit, и я считаю это очень полезным.