Où est le JavaScript API DOM-ils documentés?
Je suis un C/C++ programmeur, et je suis en train de jouer avec un peu de code Javascript, et je vais avoir des problèmes à trouver d'où la documentation est pour le standard des bibliothèques Javascript qui sont disponibles dans le navigateur.
Plus précisément, je suis à la définition d'une onload
fonction de rappel sur un HTMLImageElement
, créé avec new Image()
. Je tiens également à lire sur le src
de propriété, car il est non-standard de comportement lorsque cette propriété est affecté, l'image est rechargé.
Mozilla a quelques squelette de la documentation des différents attributs ici: https://developer.mozilla.org/en/DOM/Image
Il n'y a pas de documentation ici, seulement une liste de propriétés. Le onload
propriété n'est pas mentionné. Le src
propriété est inscrite, mais il n'y a pas de documentation sur elle.
MSDN a une meilleure documentation: http://msdn.microsoft.com/en-us/library/cc197055(SV.85).aspx.
Ma question est "où sont les docs'? Est Image()
une variable globale, ou est-il une propriété de window
l'objet global? Qui écrit l'API pour window
et document
? Est-il une norme, ou est-ce que chaque navigateur il suffit de copier les uns les autres?
- Bienvenue en enfer.
- Merci pour le nettoyage.
Vous devez vous connecter pour publier un commentaire.
Le DOM est en fait une chose qui soit séparé de JavaScript. Le DOM peut être accessible à partir d'autres langages, tels que VBScript dans IE. Et l'utilisation générale des langages de programmation comme Java, Python, PHP, etc, ont leur propre non-navigateur-basé DOM bibliothèques.
La base DOM opérations que le travail sur HTML et XML, les documents peuvent être trouvés dans DOM Core; les documents HTML supplémentaire de méthodes définies dans DOM HTML. Voici la dernière "niveaux" de soutien définies par W3; tous les navigateurs prennent en charge tout dans DOM Niveau 3 de Base. Mais DOM Niveau 1 de Base est assez solide.
Point de prêter à confusion, DOM HTML a plus développés, mais pas dans sa propre spécification DOM. Au lieu de cela, il est une partie de HTML5. Cette uniformise beaucoup d'extensions qui ont été déjà largement pris en charge dans les navigateurs, comme
innerHTML
, et ajoute un tas plus de choses que n'est pas largement encore mis en œuvre (et peut être modifié avant que le document est standardisé).Le DOM n'est que le modèle d'objet de document: il précise ce que vous obtenez à l'intérieur de la
document
objet. Il ne précise pas de navigateur et d'autres caractéristiques, comme le contenu dewindow
. Le modèle d'objet de navigateur (BOM) a déjà été unstandardised; HTML5 est de faire le premier effort de bien les documenter.HTML5 spécifie également les parties du modèle d'objet de navigateur (BOM) qui n'ont pas été normalisées. Des trucs comme
window
qui n'est pas directement connecté à ladocument
contenu.Le résultat de tout cela est qu'il n'y a pas un seul document, vous pouvez aller à qui vous dira tout sur les méthodes et les propriétés que vous avez à votre disposition dans les scripts web. Un jour, DOM Core plus HTML5 va couvrir tout le monde, mais aujourd'hui, HTML5 comprend beaucoup de choses que vous ne pouvez pas compter sur, et ce n'est pas exactement la plus lisibles, des guides, même selon les normes des documents de normes. Donc, oui, je crains que vous allez avoir à continuer à vérifier MDC et MSDN pour le soutien populaire.
Image
est spécifié par l'HTML5 pour être un membre de lawindow
objet, qui, étant le contexte global, permet de faire référence à elle comme justeImage
... ce n'est pas assez la même chose que d'être une variable globale, mais il est assez proche pour la plupart.C'est un constructeur-une fonction qui retourne un objet DOM la mise en œuvre de la
HTMLImageElement
interface (de DOM Niveau 1 HTML, étendu en HTML5). Il a été initialement introduite dans Netscape 3.0 comme un mécanisme de pré-chargement d'images; et déjà créé des images peut être consulté à partir dedocument.images
de changer leursrc
. Aujourd'huinew Image()
ne pas faire quelque chose de différent àdocument.createElement('img')
.Bien l'image ne sera pas rechargé nécessairement, mais il peut provoquer le
load
événement à feu sur certains navigateurs. Malheureusement, ce n'est pas standardisée (même en HTML5, aussi loin que je peux voir). IE, Firefox et Opera feuload
sur chaquesrc
(même si lesrc
n'est pas changé) alors que WebKit (Chrome/Safari) ne sont toujours que des feux sur l'image initiale de la charge.Ce genre de chose est pourquoi il existe des sites avec de grandes tables de différentes navigateur comportements, et pourquoi nous avons encore à tester sur différents navigateurs.
Nouveau favori: http://devdocs.io/dom/
(Devdocs.io, en général, est assez impressionnant pour les lots de documents de référence)
(plus) j'aime vraiment ce DOM référence: http://krook.org/jsdom/
Pour les débutants, cela va vraiment aider à la compréhension de ce que vous travaillez avec et de séparer les notions de:
Javascript (langage utilisé pour accéder au DOM, d'autres langages de script peuvent être utilisés),
HTML ou XML document (le balisage qui est à la base d'une page web)
et les DOM (un modèle de document qui sert une API vous permettant de manipuler la structure et le contenu du document).
http://css-tricks.com/dom/
Il a également des liens vers ces documents informatifs:
W3C: Quel est le Modèle d'Objet de Document?
MDN: Introduction - Modèle D'Objet De Document
Wikipédia: Modèle D'Objet De Document
De savoir comment les DOM développé dans un contexte historique permet aussi de comprendre sa structure et la façon de travailler avec elle, et c'est aussi couvert par les liens ci-dessus.
Je suppose que la norme est rédigée par le W3C.
http://www.w3.org/TR/REC-DOM-Level-1/
Vous pouvez trouver également les normes pour les DOM Niveau 2 et 3 😉
J'utilise parfois javascriptkit et je trouve cela très utile.