userData Behavior

Internet Development Index

Enables the object to persist data in user data.

Syntax

XML <Prefix: CustomTag ID=sID STYLE="behavior:url('#default#userData')" />
HTML <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>
Scriptingobject.style.behavior = "url('#default#userData')"
object.addBehavior ("#default#userData")

Possible Values

PrefixPrefix that associates the CustomTag with an XML namespace. This prefix is set using the XMLNS attribute of the HTML tag.
CustomTagUser-defined tag.
sIDString that specifies a unique identifier for the object.

Members Table

PropertyDescription
expires Sets or retrieves the expiration date of data persisted with the userData behavior.
XMLDocument Retrieves a reference to the XML Document Object Model (DOM) exposed by the object.
MethodDescription
getAttribute Retrieves the value of the specified attribute.
load Loads an object participating in userData persistence from a UserData store.
removeAttribute Removes the specified attribute from the object.
save Saves an object participating in userData persistence to a UserData store.
setAttribute Sets the value of the specified attribute.

Remarks

security note Security Alert  For security reasons, a UserData store is available only in the same directory and with the same protocol used to persist the store.
security note Security Alert  Using this behavior incorrectly can compromise the security of your application. Data in a UserData store is not encrypted and therefore not secure. Any application that has access to the drive where UserData is saved has access to the data. Therefore, it is recommended that you not persist sensitive data like credit card numbers. For more information, see Security Considerations: DHTML and Default Behaviors.

The userData behavior persists information across sessions by writing to a UserData store. This provides a data structure that is more dynamic and has a greater capacity than cookies. The capacity of the UserData store depends on the security zone of the domain. The following table shows the maximum amount of UserData storage that is available for an individual document and also the total available for an entire domain, based on the security zone.

Security ZoneDocument Limit (KB)Domain Limit (KB)
Local Machine1281024
Intranet51210240
Trusted Sites1281024
Internet1281024
Restricted64640

The userData behavior persists data across sessions, using one UserData store for each object. The UserData store is persisted in the cache using the save and load methods. Once the UserData store has been saved, it can be reloaded even if Microsoft® Internet Explorer has been closed and reopened.

Setting the userData behavior class on the html, head, title, or style object causes an error when the save or load method is called.

The required style can be set inline or in the document header, as follows:

   <STYLE>
.storeuserData {behavior:url(#default#userData);}
</STYLE>

An ID is optional for userData, but including one improves performance.

The userData behavior is available as of Internet Explorer 5, in the Microsoft Win32® and Unix platforms.

Examples

This example uses the userData behavior to preserve information in a UserData Store.

<HTML>
<HEAD>
<STYLE>
.storeuserData {behavior:url(#default#userData);}
</STYLE>
<SCRIPT>
function fnSaveInput(){
var oPersist=oPersistForm.oPersistInput;
oPersist.setAttribute("sPersist",oPersist.value);
oPersist.save("oXMLBranch");
}
function fnLoadInput(){
var oPersist=oPersistForm.oPersistInput;
oPersist.load("oXMLBranch");
oPersist.value=oPersist.getAttribute("sPersist");
}
</SCRIPT>
</HEAD>
<BODY>
<FORM ID="oPersistForm">
<INPUT CLASS="storeuserData" TYPE="text" ID="oPersistInput">
<INPUT TYPE="button" VALUE="Load" onclick="fnLoadInput()">
<INPUT TYPE="button" VALUE="Save" onclick="fnSaveInput()">
</FORM>
</BODY>
</HTML>
This feature requires Microsoft® Internet Explorer 5 or later. Click the following icon to install the latest version. Then reload this page to view the sample.

The following example uses the userData behavior in a custom tag to preserve information in a UserData Store.

<HTML XMLNS:sdk>
<HEAD>
<STYLE>
sdk\:cacher {behavior:url(#default#userData);}
</STYLE>
<SCRIPT>
function fnSaveInput(){
cachetag.setAttribute("sPersist",txt1.value);
cachetag.save("cache");
}
function fnLoadInput(){
cachetag.load("cache");
cachetag.value=cachetag.getAttribute("sPersist");
}
</SCRIPT>
</HEAD>
<BODY>
<sdk:cacher id="cachetag"></sdk:cacher>
<INPUT TYPE="button" VALUE="Load" onclick="fnLoadInput()">
<INPUT TYPE="button" VALUE="Save" onclick="fnSaveInput()">
<INPUT TYPE="text" ID="txt1" VALUE="some value">
</BODY>
</HTML>

Applies To

A, ACRONYM, ADDRESS, AREA, B, BIG, BLOCKQUOTE, BUTTON, CAPTION, CENTER, CITE, CODE, DD, DEL, DFN, DIR, DIV, DL, DT, EM, FONT, FORM, hn, HR, I, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=hidden, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, KBD, LABEL, LI, LISTING, MAP, MARQUEE, MENU, OBJECT, OL, OPTION, P, PLAINTEXT, PRE, Q, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TEXTAREA, TT, U, UL, VAR, XMP

See Also

Introduction to DHTML Behaviors, Introduction to Persistence