duck.html.components.script¶
Script HTML Component.
This module defines a reusable Script component for embedding JavaScript code within an HTML document.
Module Contents¶
Classes¶
Script HTML Component. |
API¶
- class duck.html.components.script.Script(element: Optional[str] = None, properties: Optional[Dict[str, str]] = None, props: Optional[Dict[str, str]] = None, style: Optional[Dict[str, str]] = None, inner_html: Optional[Union[str, str, float]] = None, children: Optional[List[duck.html.components.HtmlComponent]] = None, **kwargs)[source]¶
Bases:
duck.html.components.InnerComponentScript HTML Component.
The
Scriptcomponent allows developers to embed JavaScript code within an HTML page dynamically. It can be used to define inline scripts that interact with other components.Features:
Supports inline JavaScript execution.
Can be dynamically added to any component.
Provides flexibility for defining custom client-side logic.
Example Usage:
script = Script( inner_html=''' function showAlert() { alert("Hello, world!"); } ''' ) component.add_child(script)This will generate the following HTML output:
<script> function showAlert() { alert("Hello, world!"); } </script>Notes:
Automatic Nonce Addition: When
ENABLE_HEADERS_SECURITY_POLICY=Trueandcsp_nonce_flagis set inCSP_TRUSTED_SOURCES, thenonceproperty is automatically added.Request Resolution Required: For the
nonceto be set automatically, the request must be resolved. This is achieved by callingget_request_or_raiseon the component root (or the current component if the root isNone).
Initialization
Initialize an HTML component.
- Parameters:
element – The HTML element tag name (e.g., textarea, input, button). Can be None, but make sure element is returned by get_element method.
accept_inner_html – Whether the HTML component accepts an inner body (e.g., inner-body-here).
inner_html – Inner html to add to the HTML component. Defaults to None.
properties – Dictionary for properties to initialize the component with.
props – Just same as properties argument (added for simplicity).
style – Dictionary for style to initialize the component with.
**kwargs – Extra keyword arguments
- Raises:
HtmlComponentError – If ‘element’ is not a string or ‘inner_html’ is set but ‘accept_inner_html’ is False.
- property properties¶