HTML DOM Param Object: Accessing Parameter Elements

The HTML DOM param object provides a way to access and manipulate the <param> elements within an HTML document. The <param> tag is used to define parameters for plugins embedded with elements like <object> or <applet>. While the use of these embedding technologies is not very common today, understanding how to access and manipulate <param> elements using JavaScript is important for maintaining and debugging older web applications.

What is the HTML <param> Element?

The <param> element defines a parameter for an <object> or <applet> tag. It typically specifies a name/value pair that provides settings or options for the embedded plugin. Though not commonly used in modern web development, it can still be encountered in legacy applications. The <param> tag is always placed inside the container <object> or <applet> element.

Purpose of the HTML DOM param Object

The primary purpose of the HTML DOM param object is to provide programmatic access to the attributes of <param> elements. This allows developers to:

  • Retrieve parameter names and values
  • Modify parameter values dynamically
  • Add or remove <param> elements
  • Interact with embedded plugins through their parameters

Accessing <param> Elements

To begin, you need to obtain a reference to the <param> element you want to work with. You can do this using various DOM methods such as getElementById(), getElementsByTagName(), or querySelector(). Here’s an example using getElementById():

<object id="myObject" data="myplugin.swf">
    <param id="param1" name="myParam" value="someValue" />
</object>
<br>
<button onclick="accessParam()">Access Param Element</button>

<div id="output1"></div>

<script>
    function accessParam() {
        const paramElement = document.getElementById("param1");
        const outputDiv1 = document.getElementById("output1");
        if (paramElement) {
            outputDiv1.innerHTML = "Param Name: " + paramElement.name + ", Param Value: " + paramElement.value;
        } else {
             outputDiv1.innerHTML = "Param element not found!";
        }
    }
</script>


In the output, initially, there will be a button, the functionality of which can be seen by pressing.

Key Properties of the param Object

The param object has several useful properties that allow you to access and manipulate the parameter. The most commonly used properties include:

Property Type Description
`name` String The name of the parameter, corresponding to the `name` attribute.
`value` String The value of the parameter, corresponding to the `value` attribute.
`type` String Returns the type of the parameter element: always “param”.
`parentNode` Element Returns the parent node of the param, usually the object or applet element.
`attributes` NamedNodeMap Returns a NamedNodeMap of all attributes of the param element.

Example: Modifying a <param> Value

You can easily change a parameter’s value using the value property.

<object id="myObject2" data="myplugin.swf">
  <param id="param2" name="myParam" value="oldValue" />
</object>
<br>
<button onclick="modifyParam()">Modify Param Value</button>

<div id="output2"></div>

<script>
    function modifyParam() {
        const paramElement2 = document.getElementById("param2");
        const outputDiv2 = document.getElementById("output2");
        if(paramElement2) {
            paramElement2.value = "newValue";
            outputDiv2.innerHTML = "Modified param value to: " + paramElement2.value;
        } else {
            outputDiv2.innerHTML = "Param element not found!";
        }
    }
</script>


In the output, initially, there will be a button, the functionality of which can be seen by pressing.

Example: Accessing All Parameters of an <object>

You can use getElementsByTagName() along with parentNode property to access all the <param> elements within a specific <object> or <applet> element:

<object id="myObject3" data="myplugin.swf">
  <param name="paramA" value="valueA" />
  <param name="paramB" value="valueB" />
  <param name="paramC" value="valueC" />
</object>
<br>
<button onclick="accessAllParams()">Access All Parameters</button>

<div id="output3"></div>

<script>
    function accessAllParams() {
        const objectElement = document.getElementById("myObject3");
        const params = objectElement.getElementsByTagName("param");
        let outputText = "Parameters:<br>";

        for (let i = 0; i < params.length; i++) {
            outputText += "Name: " + params[i].name + ", Value: " + params[i].value + "<br>";
        }
         const outputDiv3 = document.getElementById("output3");
         outputDiv3.innerHTML = outputText;
    }
</script>


In the output, initially, there will be a button, the functionality of which can be seen by pressing.

Example: Using attributes Property

The attributes property gives access to all the attributes of <param> element as a NamedNodeMap:

<object id="myObject4" data="myplugin.swf">
    <param id="param4" name="myParam" value="someValue" type="string"/>
</object>
<br>
<button onclick="accessAttributes()">Access Attributes</button>

<div id="output4"></div>

<script>
    function accessAttributes() {
        const paramElement4 = document.getElementById("param4");
        const attrs = paramElement4.attributes;
        let outputText = "Attributes:<br>";
        for (let i = 0; i < attrs.length; i++) {
            outputText += attrs[i].name + ": " + attrs[i].value + "<br>";
        }
        const outputDiv4 = document.getElementById("output4");
         outputDiv4.innerHTML = outputText;
    }
</script>


In the output, initially, there will be a button, the functionality of which can be seen by pressing.

Practical Use Cases

  • Legacy Plugin Interaction: Accessing and modifying parameters of older Flash or Java applets.
  • Dynamic Configuration: Adjusting plugin behavior based on user input or other dynamic criteria.
  • Debugging: Inspecting parameter values for troubleshooting embedded plugin issues.

Browser Support

The <param> element and its corresponding DOM object are supported in all major modern web browsers.

Conclusion

The HTML DOM param object provides essential functionality for accessing and manipulating the parameters of embedded plugins in HTML documents. While the use of <object> and <applet> has decreased in modern web development, understanding how to work with the param object is valuable for maintaining and debugging legacy applications. With the examples and explanations provided, you are now equipped to handle <param> elements programmatically and address the unique challenges they might present.