Reputation: 1616
Has anyone not noticed that JQuery uses ActiveX controls?
When a user has limited their activex security they will get script prompt popups and a yellow bar accross the top of their browser window. -This setting is by default on Windows Servers. -Internet Cafe's dont support Active X. -Company internal workstations dont support this.
Considering this I don't see how people can use JQuery in a commercial application.
Do you use JQuery in a commercial application? Does this concern you? Do you think I should be concerned with this?
Upvotes: 7
Views: 9241
Reputation: 1
I had the same problem with a shop that do ajax requests, so i changed my jquery file to force load XMLHttpRequest on ie 9
search for:
var l = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
replace it with:
var isIE9 = navigator.userAgent.match(/MSIE 9.0/i) != null;
if(isIE9)
var l = new XMLHttpRequest();
else
var l = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
Upvotes: 0
Reputation: 329
Not sure if this applies to your case/question, but I have noticed that jQuery version conflicts lead to this problem, almost by default, and if you are administering a large site that's made up of several components (i.e. portal, CMS, etc.) you may inadvertently be using multiple jQuery versions at once. In my case this always caused the ActiveX security popup in IE 7.
Upvotes: 0
Reputation: 806
Independent of the AJAX functionality in IE, there was an issue in jQuery 1.3.2 that caused that banner to display when jQuery was initially loaded, even if you didn't do anything with it. See ticked #4017. The issue has been resolved in changeset #6268 and will be addressed in jQuery 1.3.3 when it is released.
Upvotes: 0
Reputation: 29267
Only spot where ActiveX
is mentioned in the jQuery code is for the ActiveXObject
which is used for XMLHttpRequests:
// Create the request object; Microsoft failed to properly
// implement the XMLHttpRequest in IE7, so we use the ActiveXObject when it is available
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
There's an open issue here ... seems like jQuery doesn't fallback to use the native XMLHttpRequest on IE7 (this is probably what you're experiencing).
Also this might help: link
Upvotes: 15
Reputation: 159618
jQuery, like most libraries that provide support for AJAX, will use ActiveX to create the XMLHttpRequest object when running in IE. Because that's how you get an XMLHttpRequest
object in IE. If you disable it, then you don't get AJAX.
So no, don't worry about it. If you don't use AJAX, then you won't have problems on systems where ActiveX is disabled; if you do, then you will have issues regardless of library, unless you use a work-around such as using iframes to submit background requests.
Upvotes: 6
Reputation: 139931
In addition to the reasons for why jQuery might have to use ActiveX (i.e., AJAX), you should also consider that not all usages of jQuery are for AJAX functionality.
Upvotes: 2