I recently upgraded an ASP.NET app to .NET 3.5 and switched to the newer version of the ASP.NET AJAX library.
In FireFox and IE7, everything works great, in IE6, anything that would perform a callback (Partial Refresh, or calling a PageMethod/WebMethod) throws an error:
Object Doesn't support this property or method
Line: 5175
Char: 9
Is there a known compatibility issue with .NET 3.5 and IE6?
EDIT:
I attached a debugger to IE6 and was able to find the exact line it is breaking on:
this._xmlHttpRequest.open(verb, this._webRequest.getResolvedUrl(), true /*async*/);
It appears that IE6 is denying the permission to do "open". This is not a cross-site request, so I am puzzled. This site is currently running on a fake hostname mapped to a local server, and not on an actual domain, but I don't think that should make a difference.
EDIT: I added a bounty, this bug is still driving me nuts...HALP!
EDIT:
Solution found!
This forum post made me curious enough to search for MXSML, and sure enough, there it was, a typo in the framework library.
MsXML was typed as MXsml.
Of course, when dealing with assembly scripts, you can't do much to fix them, but I installed SP1 hoping that they were corrected there. They were...So, if you have this issue, install .NET 3.5 SP1 and it will go away.
Woo!
How are you testing in IE6? I have come across several javascript errors when you using anything but a clean install of only IE6 in conjunction with the asp.net ajax libraries. (ie. the asp.net ajax libraries don't support multiple installs of IE, or even IETester)
It is something in the IE security model that makes things go haywire when multiple version's of IE are used. You'll find that cookies won't work right either in anything but the "installed" version of IE on the system you are running.
You may also look here for some more information on multiple IE installs. If found the comments to be particularly helpful!
UPDATE
I was able to dig, this up in the asp.net fourms. That's the only other thing I could find. May not be too be too helpful, but it at least sounds about like what you are hitting.
According to MSDN IE6 is supported. Make sure that the Internet Zone in the Security Zones settings are set to Medium.
Another one from the asp.net forums
http://forums.asp.net/p/1376680/2896886.aspx
Could be caused by different versions of the XmlHttpRequest object
Related
Refer to title question. I am very new to javascript and used it while making an html page for work on my laptop that works perfectly fine with Internet Explorer 8, but it does not work on anyone's computer that has installed IE11. As we are all supposed to upgrade to IE11 (nobody told me until this issue came up), I need to figure out why this works in IE8 and not IE11. I am guessing that the XMLHttpRequests are the issue. Basically I am using the xmlhttprequests to check if some files exist before posting them to the html page.
I'm in the process of requesting and getting approved to install IE11, but was hoping someone could clarify if I am correct that XMLHttpRequests do not work in IE11 and could possibly suggest any alternatives?
Edit:
Well magic stuff occurred and now its working.
Short answer: Yes.
Long Answer: Internet Explorer has supported XHR (XMLHTTPResponse) since IE 7. Since then it has improved considerably. There are many things that can stop code from working. Have you tried running your code in IE 11 and then checking the debug console to see what it says?
Unfortunately, since you did not post any code for us to examine; we can't really do much for you except answer your very specific and easily searchable question.
Recommendation: Use jQuery to do AJAX requests instead and examine the debug console for errors.
I'm currently developing a web based scanning application. I am using twainDotNet to get and fire scanner events. The process is done through an ActiveX control. My ActiveX control works well in IE 10 for Windows 8, but it is not working for IE 11 on Windows 8.1, but it shows on the ManageAddOn section of IE
Please help me to solve this problem, if anything is not clear in my description please add a comment.
You didn't describe the differences in behavior between IE10 and IE11, so it's hard to guess what's going wrong, but a few points come to mind:
First and foremost, managed code is not supported for IE plugins. There are several issues involved, but the practical upshot is people in a place to know say you should not use managed code for plugins.
ActiveX controls need to be updated to support enhanced protected mode and other changes to the Windows 8 security model. It's pretty involved, but the technical details start here.
Finally, I'm sure you already know this, but make sure you're testing this on the desktop version of IE, as the Windows Store experience doesn't support ActiveX controls, that you've accounted for any of the potential 32/64-bit issues, and any of the other basics that might come into play.
Hope this helps...
-- Lance
It was possible to sign with digital certificate in IE and Netscape
http://bozhobg.wordpress.com/2009/04/16/how-to-create-a-digital-signing-solution-with-only-javascript/
What's the equivalent in IE 9 ?
You're going to have a problem with this.
The clue is in the code in the link you provided. Specifically, where it uses new ActiveXObject().
ActiveX is a very old technology and it has severe security issues. For this reason, it's use has been discouraged for some time (this was the case a long time before the article you linked to was written).
IE9 does still support it, but only for legacy reasons; its use is strongly discouraged, and you will need to go to the browser config and disable some security settings in order to get it working.
If you do get activeX working in IE9, you'll also need to make sure you have the relevant activeX controls installed on your PC that actually do the work (I've not used the ones in question, so I can't advise on them). In addition, since the activeX technology is deprecated, you may find that the activeX control you need to use may not have been kept up-to-date. This may affect whether it works with newer versions of IE or Windows.
How to .NET package JavaScript as an Interner Explorer 8/9 Plugin, with the JS to be included in all IE browser pages?
I have recently finished writing JavaScript code for a browser addon, which basically runs on page-load via a JS load event listener, and for given domains it then checks for certain elements in the DOM and adds new relevant elements(i.e. information) to the page.
Since the JavaScript only reads/affects the HTML DOM independently (and does not need any toolbar buttons or anything else) the JS purely needs adding to the browser's webpages.
I have packaged the code to work with Firefox and Chrome and those are both working well, and I can run the code for IE in 'bookmarklet' form without problems, but I would like to learn how to package JavaScript as an actual .NET .MSI addon/plugin that will install for the current Internet Explorer 8/9.
Does anyone know of a suitable guide or method I might refer to please? I have tried searching online for tutorials but most walkthroughs refer to writing the plugin body itself (usually in other languages) and are thus not regarding packing existing JS.
I hope someone might have the solution please?
Note: Someone packaged an old version for me as a MSI installer for Internet Explorer 7 a year ago, which installed into Program Files with a plugin.dll plugin.tlb and plugin.InstallState plus BandObjectLib.dll Interop.SHDocVw.dll and Microsoft.mshtml.dll if that is useful.
Edit: Does anyone else know of any other options please?
IE doesn't have a mechanism for this, there simply is no JavaScript based extension ecosystem (though there are other methods to create extensions) for those browsers, yet. IE8 won't be getting one, you can pretty much guarantee that, IE9...we'll see what happens.
The closest JavaScript option available to you would be bookmarklets, which have much more limited functionality...but it's what's available.
Check out http://www.add-in-express.com/programming-internet-explorer/ and http://www.add-in-express.com/programming-internet-explorer/deployment.php they sell a package for this. It will cost you 200 dollar, but will save you allot of time (atleast, It saved me allot of time :) ).
I found a tutorial to create a plugin that loads JS-Code
http://shout.setfive.com/2012/05/01/internet-explorer-extension-quick-start-and-skeleton/
firebug is quite useful tool that I can't think myself living without it. I also downloaded the js file that helps you get similar functionality when using IE6 hoping it would help me resolve some issues, however, the messages I receive are not quite friendly such as:
"Expected ':' (default2.aspx,16)" - on line 16 there is nothing that can possibly expect a ":"
or
"Object doesn't support this property or method (default2.aspx,198)" on line 198 nothing interesting that can require any support for anything.
my site looks like a different web site in IE6.. most of the css doesnt work, some of the jquery functions doesnt work and I need to get this site work in IE6. Any help would be appreciated in terms of;
how to know what the messages (like the ones above) mean in IE6 and how to effectively debug js in IE6?
where to start for css compatibility.. e.g. shall I create different css files for different browsers and load them by detecting the browser? or are there any common issues and hacks?
I am lost so please give me any direction to start..
You debug javascript in IE6 with:-
Microsoft Script Debugger
The QuirksMode website is useful site to determine which bits of CSS is implemented in what way by which browser. Note IE6 "standards" mode rendering is notoriously buggy.
You can try Companion JS. It is pretty good with respect to debugging. It requires Microsoft Script Debugger as well.
Companion JS thankfully supports "console.log" (via firebug). It is free tool. Debug-bar is a good CSS-DOM-Javascript debugger, but it is not free for commercial purposes.
The two tools I use are:
Web Development Helper
IE Developer Toolbar
They somewhat duplicate each other's functionality, but each one can be useful for different tasks. The Web Development Helper has a built in JavaScript console, it's not as good as Firebug but it's better than nothing and easier than the MS Script Debugger.
"Expected ':' (default2.aspx,16)" - on line 16 there is nothing that can possibly expect a ":"
The error won't be on line 16 of your .aspx file, probably not even on line 16 of the HTML source the aspx file produces. It'll be near line 16 of one of your linked .js files. Which one? IE won't tell you.
You could find out by adding extra lines at the start of each .js file and seeing what happens to the error line number, but it's probably better just to install Script Debugger already.
IE8 finally fixes this.
shall I create different css files for different browsers and load them by detecting the browser? or are there any common issues and hacks?
Start with standards-compliant CSS, and a Standards Mode doctype, and test in Firefox 3, or Opera, Safari, Chrome. Mostly they'll give you more or less the same results. Now test in IE7 and hopefully it'll just work.
The troublesome browser today is IE6. You may well need to add hacks for it. You can do this in a separate stylesheet if there's a lot of them, or just use the "* html" hack for the occasional rule.
All the older hacks, your Box Model Hacks and so on, you can forget about. They're only of use for IE5, which is dead, and IE6 Quirks Mode, which you shouldn't be using.
or have an AJAX call to send debug variables/messages to ASP (PHP) script that will log it. this will help if the problem is with variables undefined or having similar issues.
For what it's worth, I've found the line number errors are much more accurate when using a separate js file.
I still use IE6 as my primary browser when developing. It saves a lot of headaches later, since you will often find CSS issues much earlier in the process.
I also find it helpful to use a JavaScript logger to send debug messages. This being an alternative to a bunch of alert messages. Personally, I use the yahoo UI logger
I use one of two things for js debugging: Microsoft Script Editor or Firebug Lite. Go here for more info.
As for the CSS, I recommend a CSS Reset. And for the little differences in IE6, consider using conditional comments.
When making an an application to be used in multiple browsers, quirksmode is a lifesaver.
EDIT: blackbird is a nice cross-browser tool for tracking state.
I've used MS Script Debugger with some success, also IE Developer Toolbar and Firebug Lite. I recently learned about MS Visual Web Developer Express Edition, which has been a big improvement so far.