Technical view on the low-level APIs

Note

This document describes implementation details. The user API is covered in qx.Website and the corresponding overview documentation.

qx.bom - Browser Object Model

The classes contained in the qx.bom namespace provide a cross-browser abstraction layer for object classes of the browser JavaScript runtime.

The BOM classes mainly consists of the following three parts:

  • DOM element manipulation
  • wrappers for native layers/objects
  • powerful low-level helper classes

See the API reference of qx.bom for more details.

DOM element manipulation

The qx.bom.element package allows you to manipulate DOM elements in almost any way you can think of. Each class is offering several static methods that take a DOM element as their first argument. Since those BOM classes are static, no instances need to be created in order to manipulate a DOM element in the document.

The following manipulations are offered by the qx.bom.element package:

  • Dimension and location
  • Box-sizing - supports the modes content-box (W3C model) and border-box (Microsoft model)
  • Scroll and overflow
  • Style querying and modification
  • CSS class name support - supports multiple class names for each element
  • Scroll elements into view
  • powerful low-level decoration support
  • cross-browser support for opacity - optimized for animations
  • CSS3 transforms and animations
  • Attribute/Property handling
  • Background images and support for the clip property
  • Cursor property

Wrapper for native layers/objects

These classes offer an unique and powerful way to deal with native layers and objects. Wrappers exist for:

  • the current document
  • DOM elements to be connected to qooxdoo's event system
  • native event management
  • flash embedding
  • CSS font styles
  • several native controls like iframe, form elements, label and image elements

As every object or layer is abstracted by a corresponding qooxdoo class you can use these BOM classes to interact without worrying about the underlying browser used.

Additional classes

These additional classes help in developing low-level, cross-browser applications.

Features include:

  • unified XMLHttp transport implementation
  • powerful client detection classes
  • low-level Range and Selection API
  • helper class for browser history
  • wrapper for working with CSS stylesheets
  • string utility class
  • helper class for the client's viewport
  • helper class for VML

qx.dom - Cross-browser DOM manipulation

The Document Object Model (DOM) is a tree model that represents the document in a browser. The classes provided by this packages allow you to query, to manipulate (i.e. add, remove, change order or replace) and to check the nodes contained in the DOM.

Currently the qx.dom package consists of three classes:

  • Element: manages children structures, inserts, removes and replaces nodes
  • Hierarchy: for querying nodes
  • Node: basic node creation and type detection

See the API reference of qx.dom for more details.

qx.xml - XML handling

This package is all about working with XML documents in a cross-browser way. Its three classes are:

  • Document: creating an XML document
  • Element: API to select, query and serialize XML elements
  • String: escaping and unescaping of XML strings

See the API reference of qx.xml for more details.