script"
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{ZUMLReferencePageHeader}} | {{ZUMLReferencePageHeader}} | ||
+ | |||
+ | {{versionSince| 3.6.2}} | ||
'''Syntax:''' | '''Syntax:''' | ||
Line 5: | Line 7: | ||
[content="''javascript snippet''"] [if="..."] [unless="..."]?> | [content="''javascript snippet''"] [if="..."] [unless="..."]?> | ||
− | |||
− | |||
− | + | It tells ZK to generate a <code><script></code> inside <code><head></code> '''after ZK default JavaScript and CSS files'''. Thus, it can be used to override what is defined in ZK default JavaScript code. Currently, only HTML-based clients (so-called browsers) support it. Furthermore, an HTML SCRIPT tag is generated for each of these declarations. | |
+ | |||
+ | You can specify whatever attributes you like; it is up to the browser to interpret. ZK only evaluates the <code>if</code> and <code>unless</code> attributes, and encodes the URI of the <code>href</code> and <code>src</code> attribute (by use of <javadoc method="encodeURL(java.lang.String)">org.zkoss.zk.ui.Execution</javadoc>). So you can specify an absolute or relative path. ZK generates all other attributes directly to the client. | ||
+ | |||
− | |||
− | < | + | <syntaxhighlight lang="xml" > |
<?script src="/js/foo.js"?> | <?script src="/js/foo.js"?> | ||
− | <?script content="var foo = true; | + | <?script content="var foo = true; if (zk.ie) doSomething();"?> |
− | if (zk.ie) doSomething();"?> | ||
<window title="My App"> | <window title="My App"> | ||
My content | My content | ||
</window> | </window> | ||
− | </ | + | </syntaxhighlight> |
As shown above, the attribute value could span multiple lines. | As shown above, the attribute value could span multiple lines. | ||
Line 27: | Line 28: | ||
=Alternatives= | =Alternatives= | ||
− | Alternatively, you could use [[ZK_Component_Reference/Essential_Components/Script|the script component]] to embed JavaScript code. The script component supports more features such as defer, but it has some memory | + | Alternatively, you could use [[ZK_Component_Reference/Essential_Components/Script|the script component]] to embed JavaScript code. The script component supports more features such as defer, but it has some memory footprint at the server (since it is a component). |
+ | |||
+ | = Limitation: Ignored by Inclusion = | ||
+ | Notice that these header directives are effective only when you visit the page directly. In other words, they are ignored if a page is included by another page with <code><include></code>, <code><apply></code>, or servlets API. Also, they are ignored if the page is a <code>zhtml</code> file. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
{{ZUMLReferencePageFooter}} | {{ZUMLReferencePageFooter}} |
Latest revision as of 06:00, 21 December 2023
Since 3.6.2
Syntax:
<?script [type="text/javascript"] [src="uri"] [charset="encoding"] [content="javascript snippet"] [if="..."] [unless="..."]?>
It tells ZK to generate a <script>
inside <head>
after ZK default JavaScript and CSS files. Thus, it can be used to override what is defined in ZK default JavaScript code. Currently, only HTML-based clients (so-called browsers) support it. Furthermore, an HTML SCRIPT tag is generated for each of these declarations.
You can specify whatever attributes you like; it is up to the browser to interpret. ZK only evaluates the if
and unless
attributes, and encodes the URI of the href
and src
attribute (by use of Execution.encodeURL(String)). So you can specify an absolute or relative path. ZK generates all other attributes directly to the client.
<?script src="/js/foo.js"?>
<?script content="var foo = true; if (zk.ie) doSomething();"?>
<window title="My App">
My content
</window>
As shown above, the attribute value could span multiple lines.
Alternatives
Alternatively, you could use the script component to embed JavaScript code. The script component supports more features such as defer, but it has some memory footprint at the server (since it is a component).
Limitation: Ignored by Inclusion
Notice that these header directives are effective only when you visit the page directly. In other words, they are ignored if a page is included by another page with <include>
, <apply>
, or servlets API. Also, they are ignored if the page is a zhtml
file.