ActiveXObject is not defined [closed]

4.3K    Asked by bruce_8968 in Salesforce , Asked on Apr 16, 2021

 I have an existing Javascript button that causes an "ActiveXObject is not defined" error when I click on it.

{ !REQUIRESCRIPT("/soap/ajax/22.0/connection.js") } var newIRnAGenRequest = new sforce.SObject("Account"); newIRnAGenRequest.id = "{!Account.Id}"; newIRnAGenRequest.Request_Folder_Path__c = "{!Account.Request_Folder_Path_Hidden__c}"; newIRnAGenRequest.Req_Communication_Folder_Path__c = "{!Account.Req_Communication_Folder_Path__c}"; newIRnAGenRequest.Primary_Request_Status__c = "{!Account.Primary_Request_Status__c}"; var result = sforce.connection.update([newIRnAGenRequest]); var myObject; var myFile0 = "{!Account.Request_Folder_Path_Hidden__c}"; var myFile1 = "{!Account.Req_Communication_Folder_Path__c}"; if (newIRnAGenRequest.Primary_Request_Status__c == "Submitted") { alert("Please select a Primary Team assigned"); } else { location.reload(true); myObject = new ActiveXObject("Scripting.FileSystemObject"); if (myObject.FolderExists(myFile0)) { window.open(myFile0); } else { var myObject2, newfolder; myObject2 = new ActiveXObject("Scripting.FileSystemObject"); newfolder = myObject2.CreateFolder(myFile0); newfolder = myObject2.CreateFolder(myFile1); window.open(myFile0); } }

When I try to google it, I found that it was related to files and it is dedicated to IE only. It worked a few months ago in chrome. But now it stopped working everywhere. My request is to provide any alternate solutions if ActiveXObject can't be used anymore.

Answered by Andrew Jenkins

ActiveXobject is not defined errors are often caused by Internet Explorer add-ons. Some users have managed to resolve the issue by uninstalling or disabling every add-on that might be causing the issue until they managed to identify the culprit. Looks like to run this in chrome you need an extension named IE tab. This also has a prerequisite to use IE explorer which is going to be discontinued by Microsoft.Looks like what you are trying to achieve is creating a file and folder in the local machine of the user. Note that secure of doing this is to generate a file on the server and then provide a download link to the user so it downloads to the user's machine. Modern Approach What you have today is a JavaScript Button that is no more supported by Salesforce due to security risks. If you are in Salesforce classic still convert this to a Visualforce custom button. For lightning, there is a number of alternatives like using quick actions and lightning actions using aura components.



Your Answer

Answer (1)

The error message "ActiveXObject is not defined" typically occurs in a web environment when trying to use ActiveXObject in JavaScript, but the code is executed in an environment where ActiveX is not supported or enabled.


ActiveXObject is a proprietary Microsoft technology used for creating and interacting with objects in Internet Explorer, primarily for tasks like working with XML data or accessing system resources. It's not supported in modern browsers like Google Chrome, Firefox, Safari, or Microsoft Edge.

If you encounter this error, here are some steps you can take:

Use Modern APIs: Wherever possible, avoid using ActiveXObject and instead use modern, standardized APIs like XMLHttpRequest for AJAX requests or fetch API.

Check Browser Compatibility: Ensure that your code is being executed in a browser environment that supports ActiveX. If you're testing in a modern browser, it's likely that ActiveX is not supported.

Consider Alternatives: If you absolutely need to work with ActiveX controls, you may need to use Internet Explorer or a similar browser that still supports ActiveX. However, keep in mind that this is not a sustainable solution for modern web development.

Update Legacy Code: If you're maintaining legacy code that relies on ActiveX, consider updating it to use modern alternatives. There are often ways to achieve the same functionality using standard web technologies.

Implement Feature Detection: If you need to support both modern and legacy browsers, consider implementing feature detection to determine whether ActiveXObject is available before attempting to use it.


Here's a basic example of feature detection:

if (window.ActiveXObject) {
    // ActiveXObject is supported, proceed with code that uses it
} else {
    // ActiveXObject is not supported, provide alternative code or fallback
}

By following these steps, you can address the "ActiveXObject is not defined" error and ensure that your code works correctly across different browser environments.












5 Months

Interviews

Parent Categories