home | sitemap

Standaard functies aanroepen

Het cms gebruikt een eigen javascript bibliotheek voor algemene en specifieke zaken. De functies uit deze bibliotheek kunnen ook gewoon door vormgevers aangeroepen worden, zowel in het cms als in de gewone website (in tegenstelling tot cms specifieke functies.)

De javascript bibliotheek bestaat uit twee bestanden init.js en support.js. Beide kunnen gewoon gedownload en bekeken worden via http://www.site-supply.nl/js/init.js en http://www.site-supply.nl/js/support.js

Beide worden via de variabele xcmsHead2 toegevoegd aan de pagina en zijn dus in het cms als in de website beschikbaar.

init.js

init.js bevat enkele wezelijke functies die altijd handig zijn en automatisch worden uitgevoerd zodat bepaalde functionaliteit direct beschikbaar is (zoals addEventListener voor IE, innerHTMLTML/outerHTML voor FF.)

AddToInitArray(functie)

De AddToInitArray-functie is een hele belangrijke functie. Vaak is het vereist dat javascript-functionaliteit wordt geinitialiseerd op de window.onload. Voor de javascript van het cms is dat niet anders. Om echter te voorkomen dat de window.onload een keer wordt overschreven en het cms niet meer werkt kan iedereen zijn functie die op de window.onload moet worden aangeroepen 'aanmelden' via AddToInitArray. Voorbeeld:

...
function myOnloadFunc() {
  ...(eigen initialisatie code)...
}
AddToInitArray(myOnloadFunc);
...

Het cms zal er dan voor zorgen dat op de window.onload alle aangemelde functies worden aangeroepen.

NB: let hier ook op als je javascript van derden gebruikt. Vaak zit er ergens verstopt een window.onload die de window.onload van het cms ongedaan maakt waardoor het cms niet meer correct werkt.

xcmsAJAX(url, processor, sync, postdata)

Eenvoudige functie om een AJAX-aanroep te doen. Geef de gewenste url mee (url), de functie die op de onreadystatechange moet worden aangeroepen (processor), of de aanroep synchroon of asynchroon moet zijn (sync) en of de request in plaats van de standaard GET een POST moet zijn (door postdata mee te geven.)

document.getElementsByClassName(className, parentElement)

Iedereen kent getElementById, getElementsByTagName, getElementsByName, etc. Maar net zo makkelijk is een getElementsByClassName. Geef de className van de gewenste class mee en eventueel een parentElement waarbinnen je wilt zoeken (in plaats van het hele document.)

BrowserDetect

Globaal object dat info over de browser beschikbaar heeft. Via BrowserDetect.browser, BrowserDetect.version en BrowserDetect.OS krijg je de gevraagde info. Bijvoorbeeld:

if (BrowserDetect.browser == "Explorer") {
  ... // doe iets alleen voor IE
}

Overige

Zie de broncode van init.js voor de volgende functies:
getStyle()
getPosition()
getWindiwHeight()
getWindowWidth()
isChildOf()
showHideSelectControls()  // verberg SELECT controls als er absoluut een element over gepositioneerd wordt.

support.js

Bevat een hoop functies die het cms en modules gebruiken voor het 'dagelijkse' werk.

Eén van de handigste functies is inCMS(). Deze functies geeft true terug als de html pagina in het cms 'draait' en false als in de gewone website.

It is left as an exercise to the reader om de broncode eens te bekijken of er meer nuttige functies bij zitten.