hxclient 库将其本身安装成页面中的单个全局 JavaScript 对象。所有 API 调用都将对这个单一对象以及此对象返回的对象执行。
在非 Portlet 页面中,hxclient 对象始终名为 hX。基本 API 调用是所有与此对象相关的函数。例如,hX.redraw(); 调用强制页面上的所有 hxclient 对象重新绘制自身。
在 Portlet 页面中,不同的 JWL 页面可以使用此库的不同版本。此库的实例将带有版本戳记。一个页面可以包含此库的多个版本。在这种情况下,将对此库进行实例化,并且将创建 hx 对象的变体并在名称中包括版本号。
var obj = document.getElementById("form1:text1");
var obj = hX.getComponentById("form1:text1");
正如访问 DOM 对象后有一个用于处理该 DOM 对象的明确 API,在访问 hxclient 对象后也有一个用于处理该 hxclient 对象的明确 API。
除访问器函数以外,hX 对象还支持一组实用程序函数。这些函数主要提供与浏览器无关的 DOM 处理方法。例如,可以通过执行调用以独立于浏览器类型的方式将焦点设置到对象上以及对对象添加和除去事件处理程序。
在 JSF 页面中,将自动安装并管理 hxclient 库。JSF 标记将确保在页面中安装此库并执行相应的调用来初始化并使用此库。
在非 JSF 页面中,必须将页面构造成包括此库、其支持库和样式表、库初始化功能以及用于将该页面中的组件和行为实例化的调用。
<HEAD> ... <!-- Include a stylesheet that styles the JWL components --> <LINK rel="stylesheet" type="text/css" href="theme/stylesheet.css" title="Style"> ... <HEAD> <BODY> ...html... <!-- Include the hxclient library --> <script type="text/JavaScript" language="JavaScript" src="/project/.ibmjsfres/hxclient_v3_0.js"></script> <!-- (Optional) Include a localized string library --> <script charset="ISO-8859-1" type="text/JavaScript" language="JavaScript" src="/project/.ibmjsfres/hxclient_v3_0.js"></script> <!-- (Optional, required for portlet) Identify the Resource Server --> <script type="text/javascript"> if (hX_5) hX_5.setResourceServer("/project/.ibmjsfres"); </script> ... html ... <!-- Declare an appropriate HTML tag --> <input type="submit" value="submit" id="form1:button1" /> <input id="form1:text1" type="text" value="03/14/2006" /> <!-- Specify what is to be done to the tag --> <script type="text/javascript"> hX_5.addBehavior("form1:button1", "onclick", new hX.JSFBehaviorGeneric("action:confirm", "target:Do you want to submit this form?")); hX_5.addComponent("form1:text1", new hX.JSFDatePicker()); </script> ... html ... <!-- Initialize the page --> <script type="text/javascript"> if (hX_5) hX_5.onPageLoad(); </script> </BODY>