svg element
<script>
The <script> SVG element allows to add scripts to an SVG document.
[!NOTE] While SVG’s
scriptelement is equivalent to the HTML<script>element, it has some discrepancies, like it uses thehrefattribute instead ofsrcand it doesn’t support ECMAScript modules so far (See browser compatibility below for details)
Usage context
Attributes
asyncExperimentalcrossorigin- : This attribute defines CORS settings as define for the HTML
<script>element. Value type: [ anonymous | use-credentials ]?; Default value:?; Animatable: yes
- : This attribute defines CORS settings as define for the HTML
deferExperimental- : If the
deferattribute is present, then the external script will be executed after the document has been parsed, but before firingDOMContentLoaded. Equivalent to thedeferattribute on the HTML<script>element. Value type: boolean; Default value: none; Animatable: no
- : If the
fetchpriorityExperimental- : Provides a hint of the relative priority to use when fetching an external script.
Allowed values:
high- : Fetches the external script at a high priority relative to other external scripts.
low- : Fetches the external script at a low priority relative to other external scripts.
auto- : Doesn’t set a preference for the fetch priority. It is used if no value or an invalid value is set. This is the default.
- : Provides a hint of the relative priority to use when fetching an external script.
Allowed values:
hreftype- : This attribute defines type of the script language to use.
Value type:
<media-type>; Default value:application/ecmascript; Animatable: no
- : This attribute defines type of the script language to use.
Value type:
xlink:hrefDeprecated
DOM Interface
This element implements the SVGScriptElement interface.
Example
Click the circle to change colors.
<svg
viewBox="0 0 10 10"
height="120px"
width="120px"
xmlns="http://www.w3.org/2000/svg">
<circle cx="5" cy="5" r="4" />
<script>
// <![CDATA[
function getColor() {
const R = Math.round(Math.random() * 255)
.toString(16)
.padStart(2, "0");
const G = Math.round(Math.random() * 255)
.toString(16)
.padStart(2, "0");
const B = Math.round(Math.random() * 255)
.toString(16)
.padStart(2, "0");
return `#${R}${G}${B}`;
}
document.querySelector("circle").addEventListener("click", (e) => {
e.target.style.fill = getColor();
});
// ]]>
</script>
</svg>
Interactive exampleOpen the canonical MDN source to run this embedded demo.
Specifications
SpecificationsStandards references are available on the canonical MDN page.
Browser compatibility
Browser compatibilityCompatibility data is available on the canonical MDN page.
See also
fetchpriorityattributescriptelement in HTML