The SVG script
element allows to add scripts to an SVG document.
While SVG's script
element is equivalent to the HTML <script>
element, it has some discrepancies, like it uses the href
attribute instead of src
and it doesn't support ECMAScript modules so far (See browser compatibility below for details)
<svg viewBox="0 0 10 10" xmlns="http://www.w3.org/2000/svg">
<script>
// <![CDATA[
window.addEventListener('DOMContentLoaded', () => {
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>
<circle cx="5" cy="5" r="4" />
</svg>
Attributes
crossorigin
- This attribute defines CORS settings as define for the HTML
<script>
element.
Value type: <string>; Default value:?
; Animatable: yes href
- The URL to the script to load.
Value type: <URL> ; Default value: none; Animatable: no type
- This attribute defines type of the script language to use.
Value type: <string>; Default value:application/ecmascript
; Animatable: no xlink:href
Deprecated since SVG 2- The URL to the script to load.
Value type: <URL> ; Default value: none; Animatable: no
Global attributes
- Core Attributes
- Most notably:
id
- Styling Attributes
class
,style
- Event Attributes
- Global event attributes, Document element event attributes
Usage notes
Categories | None |
---|---|
Permitted content | Any elements or character data |
Specifications
Specification | Status | Comment |
---|---|---|
Scalable Vector Graphics (SVG) 2 The definition of '<script>' in that specification. |
Candidate Recommendation | |
Scalable Vector Graphics (SVG) 1.1 (Second Edition) The definition of '<script>' in that specification. |
Recommendation | Initial definition |
Browser compatibility
BCD tables only load in the browser