Since a Scriptlet is ultimately an HTML page, we can view it through any browser – though what we actually see won't be interesting in most cases. In other words, not all the Scriptlets are self-initialized and display something useful without being scripted. If we have a component that displays a user-specified text string in a particular fashion, we need to provide that text string before using the Scriptlet. Thus, outside its host site, it will probably show a default string which might be empty or contain copyright information.
The body can include images, links, lines, text, and even ActiveX controls, applets, sounds, and anything else. It represents the user interface of the module, and includes the constituent elements on which the script code within the Scriptlet will act. The actual body may be defined at design-time, or created dynamically depending on what we really need to do.
For example, if we want a dynamic text string to become a Scriptlet, we might want to have a body like this:
<body>
<span id="text"> Change this text at runtime through a property. </span>
</body>
We change the actual text using an exposed attribute that ends up setting the outerText
property of the given element. The following VBScript code that does just that:
Sub DoSetText( sText )
Set coll = document.all.tags("SPAN")
coll.item(0).outerText = sText
End Sub
Alternately, we could also have an empty body which will be filled when needed with an HTML string:
<body>
</body>
Sub DoSetText(sText)
sPrefix = "<span id=text>"
sSuffix = </span>
sHtmlText = sPrefix + sText + sSuffix
Set coll = document.all.tags("SPAN")
if coll.length > 0 then
coll.item(0).outerHtml = sHtmlText
else
document.body.insertAdjacentHTML "AfterBegin", sHtmlText
end if
End Sub
In the above sample, we insert a new SPAN
element if one does not exist, or change the existing one if it is already there.