Click to Activate and Use this control

By: Samson Jr. Viewed: 153135 times  Printer Friendly Format    


If you have an Active X control or any other object that you have embedded using the <object> then from mid of 2006 these controls will not be activated by default. Hence the users will see a 'Click to activate and use this control' message when they mouse over the object.

If some of your uses face this problem while others do not then the reason is because those who never face this problem have not updated their 'windows update' from IE. Those who have done 'Windows Update' recently will face this issue. 

The solution to this problem is you can ask your users to click on the object and then start using it. But if you want to programmatically activate this object when the JSP page or HTML page is loading then you can use the following methods to activate the active x programatically.

The following example uses document.write to load a control dynamically.

<!-- HTML File -->
<html>
  <body leftmargin=0 topmargin=0 scroll=no>
    <script src="docwrite.js"></script>
  </body>
</html>
// docwrite.js
document.write('<object classid="clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6">');
document.write('<param name="URL" value="example.wmv">');
document.write('<param name="autoStart" value="-1"></object>');

External script files can also modify an element's outerHTML property to achieve the same effect, as shown in the following example.

<!-- HTML File -->
<html>
  <body> 
    <div id="embedControlLocation">
      <script src="embedControlOuterHTML.js"></script>
    </div>
  </body>
</html>
// outerhtml.js
embedControlLocation.outerHTML = '<embed src="examplecontrol">';

The next example uses document.createElement to load an ActiveX control using the OBJECT element.

Important  When using createElement to add an Object or Embed element to a web page, use care to create the element, initialize its attributes, and add it to the page's DOM before creating the ActiveX control to be loaded by the new element. For more information, please see the createElement documentation.

<!-- HTML File -->
<html>
  <body> 
    <div id="DivID">
      <script src="createElementExplicit.js"></script>
    </div>  
  </body>
</html>
// createElementExplicit.js
var myObject = document.createElement('object');
DivID.appendChild(myObject);
myObject.width = "200";
myObject.height = "100";
myObject.classid= "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6"; 
myObject.URL = "example.wmv";
myObject.uiMode = "none" ;

The next example uses innerHTML and a JScript function to load an ActiveX control while specifying parameter values.

<!-- HTML File -->
<html>
 <head>
   <script src="external_script.js" language="JScript"></script>
 </head>
 
 <body>
   <div id="EXAMPLE_DIV_ID">
      This text will be replaced by the control
   </div>
   <script language="JScript">
     CreateControl( "EXAMPLE_DIV_ID",
                    "clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6",
                    "EXAMPLE_OBJECT_ID", "600", "400", "example.wmv",
                    "-1")
   </script>
 </body>
</html>
// external_script.js
function CreateControl(DivID, CLSID, ObjectID,
                       WIDTH, HEIGHT, URL, AUTOSTART)
{
  var d = document.getElementById(DivID);
  d.innerHTML = 
    '<object classid=' + CLSID + ' id=' + ObjectID + 
    ' width=' + WIDTH + ' height=' + HEIGHT +'>
    <param name="URL" value=' + URL + '>
    <param name="autoStart" value=' + AUTOSTART + '/>';
}

Because the next example uses the writeln function to insert the script into the original HTML document, the resulting control requires activation. To load a control without requiring activation, use one of the previous examples.

<!-- HTML File -->
<html>
  <body> 
    <div id="embedControlLocation">
      <script id="elementid" src="embedControl.js"></script> 
    </div>
  </body>
</html>
// embedControl.js
document.writeln('<script>');
document.write('document.writeln(\'');
document.write( '<object classid = 
                "clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6" 
                width="100" height="100" />');
document.write('\');');
document.writeln('</script>');

For more details visit http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp



Most Viewed Articles (in JSP )

Latest Articles (in JSP)

Comment on this tutorial