files/en-us/web/api/pluginarray/index.md
{{APIRef("HTML DOM")}}{{deprecated_header}}
The PluginArray interface is used to store a list of {{DOMxRef("Plugin")}} objects; it's returned by the {{DOMxRef("Navigator.plugins", "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
PluginArrayobjects are no longer enumerable in the latest browser versions.
The following example function returns the version of the Shockwave Flash plugin.
const pluginsLength = navigator.plugins.length;
document.body.innerHTML =
`${pluginsLength} Plugin(s)
` +
`<table id="pluginTable"><thead>` +
`<tr><th>Name</th><th>Filename</th><th>description</th><th>version</th></tr>` +
`</thead><tbody></tbody></table>`;
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;
document.write(
`${pluginsLength.toString()} Plugin(s)
` +
`Name | Filename | description
`,
);
for (let i = 0; i < pluginsLength; i++) {
document.write(
`${navigator.plugins[i].name} | ${navigator.plugins[i].filename} | ${navigator.plugins[i].description} | ${navigator.plugins[i].version}
`,
);
}
{{Specifications}}
{{Compat}}
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.