Package org.zkoss.zul

Class Script

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zul.Script
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.sys.ComponentCtrl

public class Script extends org.zkoss.zk.ui.AbstractComponent
A component to generate script codes that will be evaluated at the client. It is similar to HTML SCRIPT tag, except the defer option (setDefer(boolean)) will cause the evaluation of JavaScript until the widget has been instantiated and mounted to the DOM tree.

Note: it is the script codes running at the client, not at the server. Don't confuse it with the zscript element.

There are several way to embed script codes in a ZUML page:

Approach 1: Specify the URL of the JS file without defer. The JavaScript codes are evaluated as soon as the file is loaded.

<script src="my.js"/>
 

Approach 2: Specify the JavaScript codes directly without defer. The JavaScript codes are evaluated immediately before the widget is instantiated, so you cannot access any widget. Rather, it is used to do desktop-level initialization, such as defining a widget class, and a global function.

<script defer="true">
 zk.$package('foo');
 zk.load('zul.wgt', function () {
 foo.Foo = zk.$extends(zul.Widget, {
 //...
</script>
 

Approach 3: Specify the JavaScript codes directly with defer. The JavaScipt codes are evaluated after the widget is instantiated and mounted. Moreover, this references to the script widget, so you can access the widgets as follows.

<script defer="true">
 this.getFellow('l').setValue('new value');
 //...
</script>
 

Alternative to Script, you can use the script directive as shown below..

<?script src="/js/mine.js"?/>
 <?script content="jq.IE6_ALPHAFIX=/.png/"?/>
 
Author:
tomyeh
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

    org.zkoss.zk.ui.AbstractComponent.Children, org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.AbstractComponent.TargetInfo
  • Field Summary

    Fields inherited from interface org.zkoss.zk.ui.Component

    APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE

    Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

    AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    Script(String content)
    Constructs a script component with the specified content.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the character encoding of the source.
    Returns the content of the script element.
    Returns the list of packages to load before evaluating the script defined in getContent().
    Returns the URI of the source that contains the script codes.
    protected boolean
    Not childable.
    boolean
    Returns whether to defer the execution of the script codes until the widget is instantiated and mounted.
    protected void
    renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer)
     
    void
    setCharset(String charset)
    Sets the character encoding of the source.
    void
    setContent(String content)
    Sets the content of the script element.
    void
    setDefer(boolean defer)
    Sets whether to defer the execution of the script codes.
    void
    setPackages(String packages)
    Sets the list of packages to load before evaluating the script defined in getContent().
    void
    Sets the URI of the source that contains the script codes.

    Methods inherited from class org.zkoss.zk.ui.AbstractComponent

    addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, clone, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getExtraCtrl, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getPropertyAccess, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • Script

      public Script()
    • Script

      public Script(String content)
      Constructs a script component with the specified content.
      Parameters:
      content - the content (the code snippet).
      Since:
      6.0.0
  • Method Details

    • getCharset

      public String getCharset()
      Returns the character encoding of the source. It is used with getSrc().

      Default: null.

    • setCharset

      public void setCharset(String charset)
      Sets the character encoding of the source. It is used with setSrc(java.lang.String).

      Refer to HTML Character Setsfor more information.

    • getSrc

      public String getSrc()
      Returns the URI of the source that contains the script codes.

      Default: null.

    • setSrc

      public void setSrc(String src)
      Sets the URI of the source that contains the script codes.

      You either add the script codes directly with the Label children, or set the URI to load the script codes with setSrc(java.lang.String). But, not both.

      Parameters:
      src - the URI of the source that contains the script codes
    • isDefer

      public boolean isDefer()
      Returns whether to defer the execution of the script codes until the widget is instantiated and mounted.

      Default: false.

      Specifying false (default), if you want to do the desktop-level (or class-level) initialization, such as defining a widget class or a global function.

      Specifying true, if you want to access widgets. Notice that this references to this script widget.

    • setDefer

      public void setDefer(boolean defer)
      Sets whether to defer the execution of the script codes.
      See Also:
    • getContent

      public String getContent()
      Returns the content of the script element. By content we mean the JavaScript codes that will be enclosed by the HTML SCRIPT element.

      Default: null.

      Deriving class can override this method to return whatever it prefers (ignored if null).

      Since:
      3.0.0
    • setContent

      public void setContent(String content)
      Sets the content of the script element. By content we mean the JavaScript codes that will be enclosed by the HTML SCRIPT element.
      Since:
      3.0.0
    • getPackages

      public String getPackages()
      Returns the list of packages to load before evaluating the script defined in getContent(). It is meaning only if getContent() not null.

      Default: null.

      Since:
      5.0.0
    • setPackages

      public void setPackages(String packages)
      Sets the list of packages to load before evaluating the script defined in getContent(). If more than a package to load, separate them with comma.
      Since:
      5.0.0
    • renderProperties

      protected void renderProperties(org.zkoss.zk.ui.sys.ContentRenderer renderer) throws IOException
      Overrides:
      renderProperties in class org.zkoss.zk.ui.AbstractComponent
      Throws:
      IOException
    • isChildable

      protected boolean isChildable()
      Not childable.
      Overrides:
      isChildable in class org.zkoss.zk.ui.AbstractComponent