---
title: "tinymce.dom.ScriptLoader"
description: "This class handles asynchronous/synchronous loading of JavaScript files it will execute callbacks when various items gets loaded. This class is useful to load external JavaScript files."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/apis/tinymce.dom.scriptloader/"
md_url: "https://www.tiny.cloud/docs/tinymce/5/apis/tinymce.dom.scriptloader/index.md"
version: "5"
last_updated: "2024-03-26T08:09:19Z"
tokens: 977
---
Important This page documents TinyMCE 5. For new projects, Tiny recommends using the latest, most up-to-date version. [See TinyMCE 8 documentation](../../../latest/apis/tinymce.dom.scriptloader/).
# tinymce.dom.ScriptLoader

This class handles asynchronous/synchronous loading of JavaScript files it will execute callbacks when various items gets loaded. This class is useful to load external JavaScript files.

## Examples

```javascript
// Load a script from a specific URL using the global script loader
tinymce.ScriptLoader.load('somescript.js');

// Load a script using a unique instance of the script loader
var scriptLoader = new tinymce.dom.ScriptLoader();

scriptLoader.load('somescript.js');

// Load multiple scripts
var scriptLoader = new tinymce.dom.ScriptLoader();

scriptLoader.add('somescript1.js');
scriptLoader.add('somescript2.js');
scriptLoader.add('somescript3.js');

scriptLoader.loadQueue(function() {
   alert('All scripts are now loaded.');
});
```

## Summary

### Methods

| Name | Summary | Defined by |
| --- | --- | --- |
| [add()](#add) | Adds a specific script to the load queue of the script loader. | `ScriptLoader` |
| [isDone()](#isDone) | Returns true/false if a script has been loaded or not. | `ScriptLoader` |
| [load()](#load) | Loads a specific script directly without adding it to the load queue. | `ScriptLoader` |
| [loadQueue()](#loadQueue) | Starts the loading of the queue. | `ScriptLoader` |
| [loadScripts()](#loadScripts) | Loads the specified queue of files and executes the callback ones they are loaded. This method is generally not used outside this class but it might be useful in some scenarios. | `ScriptLoader` |
| [markDone()](#markDone) | Marks a specific script to be loaded. This can be useful if a script got loaded outside the script loader or to skip it from loading some script. | `ScriptLoader` |

## Methods

### add()

```javascript
add(url: String, success: function, scope: Object, failure: function)
```
Adds a specific script to the load queue of the script loader.

#### Parameters

- `url (String)` - Absolute URL to script to add.
- `success (function)` - Optional success callback function to execute when the script loades successfully.
- `scope (Object)` - Optional scope to execute callback in.
- `failure (function)` - Optional failure callback function to execute when the script failed to load.

### isDone()

```javascript
isDone(url: String): Boolean
```
Returns true/false if a script has been loaded or not.

#### Parameters

- `url (String)` - URL to check for.

#### Return value

- `Boolean` - true/false if the URL is loaded.

### load()

```javascript
load(url: String, success: function, failure: function)
```
Loads a specific script directly without adding it to the load queue.

#### Parameters

- `url (String)` - Absolute URL to script to add.
- `success (function)` - Optional success callback function when the script loaded successfully.
- `failure (function)` - Optional failure callback function when the script failed to load.

### loadQueue()

```javascript
loadQueue(success: function, failure: function, scope: Object)
```
Starts the loading of the queue.

#### Parameters

- `success (function)` - Optional callback to execute when all queued items are loaded.
- `failure (function)` - Optional callback to execute when queued items failed to load.
- `scope (Object)` - Optional scope to execute the callback in.

### loadScripts()

```javascript
loadScripts(scripts: Array, success: function, scope: Object, failure: function)
```
Loads the specified queue of files and executes the callback ones they are loaded.
This method is generally not used outside this class but it might be useful in some scenarios.

#### Parameters

- `scripts (Array)` - Array of queue items to load.
- `success (function)` - Optional callback to execute when scripts is loaded successfully.
- `scope (Object)` - Optional scope to execute callback in.
- `failure (function)` - Optional callback to execute if scripts failed to load.

### markDone()

```javascript
markDone(url: string)
```
Marks a specific script to be loaded. This can be useful if a script got loaded outside
the script loader or to skip it from loading some script.

#### Parameters

- `url (string)` - Absolute URL to the script to mark as loaded.
