Attention

Version 3 is now the current version of MathJax. This document is for version 2.

The MathJax.HTML Object

The MathJax.HTML object provides routines for creating HTML elements and adding them to the page, and in particular, it contains the code that processes MathJax’s HTML snippets and turns them into actual DOM objects. It also implements the methods used to manage the cookies used by MathJax.

Properties

Cookie.prefix: "mjx"

The prefix used for names of cookies stored by MathJax.

Cookie.expires: 365

The expiration time (in days) for cookies created by MathJax.

Methods

Element(type[, attributes[, contents]])

Creates a DOM element of the given type. If attributes is non-null, it is an object that contains key:value pairs of attributes to set for the newly created element. If contents is non-null, it is an HTML snippet that describes the contents to create for the element. For example

var div = MathJax.HTML.Element(
  "div",
  {id: "MathDiv", style:{border:"1px solid", padding:"5px"}},
  ["Here is math: \\(x+1\\)",["br"],"and a display $$x+1\\over x-1$$"]
);
Parameters:
  • type — node type to be created

  • attributes — object specifying attributes to set

  • contents — HTML snippet representing contents of node

Returns:

the DOM element created

addElement(parent, type[, attributes[, content]])

Creates a DOM element and appends it to the parent node provided. It is equivalent to

parent.appendChild(MathJax.HTML.Element(type,attributes,content))
Parameters:
  • parent — the node where the element will be added

  • attributes — object specifying attributes to set

  • contents — HTML snippet representing contents of node

Returns:

the DOM element created

TextNode(text)

Creates a DOM text node with the given text as its content.

Parameters:
  • text — the text for the node

Returns:

the new text node

addText(parent, text)

Creates a DOM text node with the given text and appends it to the parent node.

Parameters:
  • parent — the node where the text will be added

  • text — the text for the new node

Returns:

the new text node

setScript(script, text)

Sets the contents of the script element to be the given text, properly taking into account the browser limitations and bugs.

Parameters:
  • script — the script whose content is to be set

  • text — the text that is to be the script’s new content

Returns:

null

getScript(script)

Gets the contents of the script element, properly taking into account the browser limitations and bugs.

Parameters:
  • script — the script whose content is to be retrieved

Returns:

the text of the script

Cookie.Set(name, data)

Creates a MathJax cookie using the MathJax.HTML.Cookie.prefix and the name as the cookie name, and the key:value pairs in the data object as the data for the cookie. For example,

MathJax.HTML.Cookie.Set("test",{x:42, y:"It Works!"});

will create a cookie named “mjx.test” that stores the values of x and y provided in the data object. This data can be retrieved using the MathJax.HTML.Cookie.Get() method discussed below.

Parameters:
  • name — the name that identifies the cookie

  • data — object containing the data to store in the cookie

Returns:

null

Cookie.Get(name[, obj])

Looks up the data for the cookie named name and merges the data into the given obj object, or returns a new object containing the data. For instance, given the cookie stored by the example above,

var data = MathJax.HTML.Cookie.Get("test");

would set data to {x:42, y:"It Works!"}, while

var data = {x:10, z:"Safe"};
MathJax.HTML.Cookie.Get("test",data);

would leave data as {x:42, y:"It Works!", z:"Safe"}.