MAJAX is a Javascript library that provides direct access to a III Millennium catalog from all pages within an organization's domain. MAJAX can retrieve MARC and up-to-the-minute circulation information and present it in a variety of formats. MAJAX works in all common browsers, including Internet Explorer, Firefox, and the Safari browser. MAJAX is not a plugin that must be installed by a user - there is no relationship to the popular LibX Firefox Extension. MAJAX also does not require any server software that is not already part of a standard Millennium system. MAJAX does not require a separate web server or PhP installation. MAJAX is easy to use, requiring only basic HTML skills and no JavaScript programming.
For a quick install, simply copy majax.html and majax.js to the /screens directory of your III installation.
Other III libraries can use this technology, which has been released by Virginia Tech under the LGPL.
Upcoming Version from TBD, 2010 majax.html majax.js
Changes:(6/2/2010): Use location.protocol to support use via https:// sites.
Fixed syndetics book cover display to use ISBN from record so that it will work with all search types.
(10/8/2010): Load majax frame on document.ready rather than waiting until window.load fires. This should speed up loading majax on many pages. Duplicates some code taken from jQuery. Note that Majax is still not dependent on any libraries.
(10/8/2010): Auto-detect .ac.uk and .edu.au domains and adjust superdomain accordingly.
(10/8/2010): Added support for ERM record information via the e100040 identifier.
Version from Apr 2, 2008 majax.html majax.js
Changes:Added majax-showholdingslocations class, courtesy of Tomasz.Neugebauer@concordia.ca
Fixed majax-linktocatalog class when bibrecord linking syntax is used. Note that MAJAX does not allow a checkdigit when ".b" is used.
Version from Feb 17, 2008 majax.html majax.js
Changes:Introduces caching. MAJAX will now fetch every record only once from the III server, no matter how many SPANs refer to it. Because of this, we increased the number of requests sent per second to 100 (5 requests are sent every 50ms) until all SPANs are processed. Previously, each SPAN caused a request to be sent to the server, even if multiple SPANs referred to the same record. This change was somewhat involved, so be sure to thoroughly test it when upgrading.
Version from Feb 16, 2008 majax.html majax.js
Changes:Fixed loading issue on Safari. Thanks for William Hicks for pointing it out.
Be quiet about non-existing MARC subfields rather than emitting 'undefined'.
Version from Dec 6, 2007 majax.html majax.js
Changes:Erik Still provided a patch to allow Majax to run from both the staging port (2082) and the live port.
Version from July 27, 2007 majax.html majax.js
Changes:Now support embedded the search terms inside the <span> tag. In this case, use a "*" instead of the search term after the i, o, t, or .b See the test items marked 'inlined' in the demo for examples.
Support for message customization. Looks at majaxcustomize.js and how it is included in the demo as an example.
Changes: MAJAX now also supports 'o57207630' for OCLC number in the title attribute.
Slides from the IUG 2008 talk. These slides are an updated version of the 2007 talk, containing information about all updates and additions made since.
Slides from the IUG 2007 talk. These slides contain brief instructions on how to use MAJAX. They also have a number of screen shots showing it in action.
Just like you normally would. Simply add either a style= attribute or use a class and add it to MAJAX's classes. MAJAX will ignore those styles, and the browser will ignore the MAJAX classes. For instance, if you have declared a class 'booktitle' in your style sheet, you could use <span class="majax-marc-245-a majax-marc-245-b booktitle" ... > ... to ensure that 245$a and 245$b are formatted in this style.
If you prefer to use ids in your style sheets, add an id= attribute.
You have to write a little bit of JavaScript to achieve that. Create a new file majaxcustomize.js. Include this file via a <script> element in the page in which MAJAX should work. Here's an example majaxcustomize.js. Note that majaxcustomize.js does not have to be in your /screens directory, it can be hosted anywhere.
Then, define a number of variables (explained at the beginning of majax.js). For instance, to change the message '1 copy is available' to 'One copy is available', define
var singleCopyStatus = "One copy is %s";Other strings include noCopiesFound, multipleCopyStatus, itemAvailableMsg, noCopyHeld, singleItemUnavailable, multipleItemsUnavailable, and electronicBookMsg. If your catalog doesn't refer to available items as available, set isAvailableRegex to a regular expression that matches your catalog's message.
A. We do not think so. We believe MAJAX should work even if your record do not display a link to the MARC record, as long as the III system returns a MARC record when asked. This is based on testing with Danbury, which does not have the MARC display enabled.
Because IE does not support data: URLs. Use majax-endnote or majax-endnote-switch instead if IE support is important to you.
For more information and to report bugs, contact libx.org@gmail.com
Other meanings of MAJAX include Gérard Majax and Major Accident plans in UK hospitals.