- HTML JavaScript
- Example
- My First JavaScript
- The HTML Tag
- Example
- A Taste of JavaScript
- Example
- Example
- Example
- The HTML Tag
- Example
- HTML Exercises
- HTML Script Tags
- Html script element javascript
- # Create a Script element using JavaScript
- HTML Tag
- Tips and Notes
- Browser Support
- Attributes
- Differences Between HTML and XHTML
- HTMLScriptElement
- Instance properties
- Static methods
- Instance methods
- Events
- Examples
- Dynamically importing scripts
- Checking if a script type is supported
- Specifications
- Browser compatibility
- See also
- Found a content problem with this page?
- MDN
- Support
- Our communities
- Developers
HTML JavaScript
JavaScript makes HTML pages more dynamic and interactive.
Example
My First JavaScript
The HTML Tag
The HTML tag is used to define a client-side script (JavaScript).
The element either contains script statements, or it points to an external script file through the src attribute.
Common uses for JavaScript are image manipulation, form validation, and dynamic changes of content.
To select an HTML element, JavaScript most often uses the document.getElementById() method.
This JavaScript example writes «Hello JavaScript!» into an HTML element with >
Example
Tip: You can learn much more about JavaScript in our JavaScript Tutorial.
A Taste of JavaScript
Here are some examples of what JavaScript can do:
Example
JavaScript can change content:
Example
JavaScript can change styles:
document.getElementById(«demo»).style.fontSize = «25px»;
document.getElementById(«demo»).style.color = «red»;
document.getElementById(«demo»).style.backgroundColor = «yellow»;
Example
JavaScript can change attributes:
The HTML Tag
The HTML tag defines an alternate content to be displayed to users that have disabled scripts in their browser or have a browser that doesn’t support scripts:
Example
HTML Exercises
HTML Script Tags
Tag | Description |
---|---|
Defines a client-side script | |
Defines an alternate content for users that do not support client-side scripts |
For a complete list of all available HTML tags, visit our HTML Tag Reference.
Html script element javascript
Last updated: Nov 22, 2022
Reading time · 2 min
# Create a Script element using JavaScript
To create a script element in JavaScript:
- Use the document.createElement() method to create the script element.
- Set the src attribute on the element to a local or remote JavaScript file.
- Add the element to the page using the appendChild() method.
Here is the HTML for the examples.
Copied!DOCTYPE html> html lang="en"> head> title>bobbyhadz.comtitle> meta charset="UTF-8" /> head> body> div id="box">div> script src="index.js"> script> body> html>
And here is the related JavaScript code.
Copied!const script = document.createElement('script'); // 👇️ local file // script.setAttribute('src', 'another-file.js'); // 👇️ remote file script.setAttribute( 'src', 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js', ); script.setAttribute('async', ''); // 👇️ optionally set script to be treated as JS module // script.setAttribute('type', 'module'); script.onload = function handleScriptLoaded() console.log('script has loaded'); document.getElementById('box').textContent = 'Script loaded successfully'; >; script.onerror = function handleScriptError() console.log('error loading script'); >; document.head.appendChild(script);
Copied!const script = document.createElement('script');
HTML Tag
The tag is used to embed a client-side script (JavaScript).
The element either contains scripting statements, or it points to an external script file through the src attribute.
Common uses for JavaScript are image manipulation, form validation, and dynamic changes of content.
Tips and Notes
Tip: If you want to learn more about JavaScript, visit our JavaScript Tutorial.
Browser Support
Attributes
Attribute | Value | Description |
---|---|---|
async | async | Specifies that the script is downloaded in parallel to parsing the page, and executed as soon as it is available (before parsing completes) (only for external scripts) |
crossorigin | anonymous use-credentials | Sets the mode of the request to an HTTP CORS Request |
defer | defer | Specifies that the script is downloaded in parallel to parsing the page, and executed after the page has finished parsing (only for external scripts) |
integrity | filehash | Allows a browser to check the fetched script to ensure that the code is never loaded if the source has been manipulated |
nomodule | True False | Specifies that the script should not be executed in browsers supporting ES2015 modules |
referrerpolicy | no-referrer no-referrer-when-downgrade origin origin-when-cross-origin same-origin strict-origin strict-origin-when-cross-origin unsafe-url | Specifies which referrer information to send when fetching a script |
src | URL | Specifies the URL of an external script file |
type | scripttype | Specifies the media type of the script |
Differences Between HTML and XHTML
In XHTML, the content inside scripts is declared as #PCDATA (instead of CDATA), which means that entities will be parsed.
This means that in XHTML, all special characters should be encoded, or all content should be wrapped inside a CDATA section:
HTMLScriptElement
JavaScript files should be served with the application/javascript MIME type, but browsers are lenient and block them only if the script is served with an image type ( image/* ), video type ( video/* ), audio type ( audio/* ), or text/csv . If the script is blocked, its element receives an error event; otherwise, it receives a load event.
Instance properties
- If the async attribute is present, then the script will be executed asynchronously as soon as it downloads.
- If the async attribute is absent but the defer attribute is present, then the script is executed when the page has finished parsing.
- If neither attribute is present, then the script is fetched and executed immediately, blocking further parsing of the page.
The defer attribute may be specified with the async attribute, so legacy browsers that only support defer (and not async ) fall back to the defer behavior instead of the default blocking behavior.
Note: The exact processing details for these attributes are complex, involving many different aspects of HTML, and therefore are scattered throughout the specification. These algorithms describe the core ideas, but they rely on the parsing rules for start and end tags in HTML, in foreign content, and in XML; the rules for the document.write() method; the handling of scripting; and so on.
A string reflecting the CORS setting for the script element. For scripts from other origins, this controls if error information will be exposed.
An optional string representing a hint given to the browser on how it should prioritize fetching of an external script relative to other external scripts. If this value is provided, it must be one of the possible permitted values: high to fetch at a high priority, low to fetch at a low priority, or auto to indicate no preference (which is the default).
A boolean value that if true, stops the script’s execution in browsers that support ES modules — used to run fallback scripts in older browsers that do not support JavaScript modules.
A string that reflects the referrerPolicy HTML attribute indicating which referrer to use when fetching the script, and fetches done by that script.
Static methods
Returns true if the browser supports scripts of the specified type and false otherwise. This method provides a simple and unified method for script-related feature detection.
Instance methods
No specific methods; inherits methods from its parent, HTMLElement .
Events
No specific events; inherits events from its parent, HTMLElement .
Examples
Dynamically importing scripts
Let’s create a function that imports new scripts within a document creating a node immediately before the that hosts the following code (through document.currentScript ). These scripts will be asynchronously executed. For more details, see the defer and async properties.
function loadError(oError) throw new URIError(`The script $oError.target.src> didn't load correctly.`); > function prefixScript(url, onloadFunction) const newScript = document.createElement("script"); newScript.onerror = loadError; if (onloadFunction) newScript.onload = onloadFunction; > document.currentScript.parentNode.insertBefore( newScript, document.currentScript, ); newScript.src = url; >
This next function, instead of prepending the new scripts immediately before the document.currentScript element, appends them as children of the tag.
function loadError(oError) throw new URIError(`The script $oError.target.src> didn't load correctly.`); > function affixScriptToHead(url, onloadFunction) const newScript = document.createElement("script"); newScript.onerror = loadError; if (onloadFunction) newScript.onload = onloadFunction; > document.head.appendChild(newScript); newScript.src = url; >
affixScriptToHead("myScript1.js"); affixScriptToHead("myScript2.js", () => alert('The script "myScript2.js" has been correctly loaded.'); >);
Checking if a script type is supported
HTMLScriptElement.supports() provides a unified mechanism for checking whether a browser supports particular types of scripts.
The example below shows how to check for module support, using the existence of the noModule attribute as a fallback.
function checkModuleSupport() if ("supports" in HTMLScriptElement) return HTMLScriptElement.supports("module"); > return "noModule" in document.createElement("script"); >
Classic scripts are assumed to be supported on all browsers.
Specifications
Browser compatibility
BCD tables only load in the browser
See also
Found a content problem with this page?
This page was last modified on Jul 7, 2023 by MDN contributors.
Your blueprint for a better internet.
MDN
Support
Our communities
Developers
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.