Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

The PluginArray interface is used to store a list of Plugin objects describing the available plugins; it's returned by the navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem("name") methods.

Note: Own properties of PluginArray objects are no longer enumerable in the latest browser versions.

Instance properties

PluginArray.length Read only Deprecated

The number of plugins in the array.

Instance methods

PluginArray.item Deprecated

Returns the Plugin at the specified index into the array.

PluginArray.namedItem Deprecated

Returns the Plugin with the specified name.

PluginArray.refresh Deprecated

Refreshes all plugins on the current page, optionally reloading documents.


The following example function returns the version of the Shockwave Flash plugin.

const pluginsLength = navigator.plugins.length;

document.body.innerHTML =
  `${pluginsLength} Plugin(s)<br>` +
  `<table id="pluginTable"><thead>` +
  `<tr><th>Name</th><th>Filename</th><th>description</th><th>version</th></tr>` +

const table = document.getElementById("pluginTable");

for (let i = 0; i < pluginsLength; i++) {
  let newRow = table.insertRow();
  newRow.insertCell().textContent = navigator.plugins[i].name;
  newRow.insertCell().textContent = navigator.plugins[i].filename;
  newRow.insertCell().textContent = navigator.plugins[i].description;
  newRow.insertCell().textContent = navigator.plugins[i].version ?? "";

The following example displays information about the installed plugin(s).

const pluginsLength = navigator.plugins.length;

  `${pluginsLength.toString()} Plugin(s)<br>` +
    `Name | Filename | description<br>`,

for (let i = 0; i < pluginsLength; i++) {
    `${navigator.plugins[i].name} | ${navigator.plugins[i].filename} | ${navigator.plugins[i].description} | ${navigator.plugins[i].version}<br>`,


HTML Standard
# pluginarray

Browser compatibility

BCD tables only load in the browser

In addition to listing each plugin as a pseudo-array by zero-indexed numeric properties, Firefox provides properties that are the plugin name directly on the PluginArray object.