I have a VB6 application using the WebBrowser control. It displays HTML pages from a local folder (using file:// URI scheme). Some of those pages contain embedded JavaScript code.
It all works well for the vast majority of users, but occasionally we get reports from people who have problems with everything JavaScript-related in the pages. Basically, it looks like they have scripting disabled inside the WebBrowser control.
The problem is: I cannot even reproduce the problem. I was trying to fiddle with various settings in IE security (IE8 on Win XP Pro SP3), disabling various scripting-related options for different zones (which zone includes local file system, by the way?), - I'm always having JavaScript running well in my tests.
Does anybody have any idea of what may be going wrong?
Thanks
I think I know why this is happening, it's because the IE version the WebBrowser control renders under is IE 7.0 in most, and if they are using a browser older than IE 7, it will render under IE 4.0 (seriously). They do this for backwards compatibility. So if some of your users have IE 6, their default IE rendering engine will be IE 4.0. Of course, since you are probably using IE 9, yors would be IE 7 engine.
You can change the engine, if this is what you want to do, to the current engine (ie: to the current version of internet explorer installed on the users system).
Also, I'd like you to go to http://whatsmyuseragent.com/ on your IE browser, and then through the hosted WebBrowser control; you'll see the difference.
Also, ask your problemed users to go to http://whatsmyuseragent.com/ through their hosted WebBrowser control if they can, and note the results, if they are running pre-IE-7 then most likely their hosted webbrowser control will show IE 4.0. This is almost certainly the reason for your problem.
Related
Our web browser plugin has worked in all IE versions and still works fine in IE9 and IE10 but in IE11 the plugin is not even recognized and listed as an add-on. It's as if IE11 no longer supports ActiveX.
NOTE: this questions is asked as the developer of the plugin and not the end-user who might need to correct IE settings. So suggestions for how to detect ActiveX or how to adjust a browser settings to allow ActiveX are useless here.
We assume that what we need to do is make adjustments to the ActiveX structure so that IE11 on Windows 8 approves the plugin so that it can be available to the user at their discretion, ie: list it in the Add-on Manager.
A sample project and test page can be downloaded from here - http://addmine.com/temp/EPM_project.zip
Surely there is a workaround but what do we need to change?
As of IE11, add-ons are supported only for IE on the desktop. If you're running the Windows Store experience of IE, then your statement about IE11 not recognizing the plug-in is absolutely correct. This article shows how you can have this experience prompt the user to open the page in the desktop experience of IE, which will support your plugin.
Having said that, it's entirely possible that you do change your plugin to support changes to the Windows 8 security model. Here are a couple of links to get you started:
Supporting enhanced protected mode (Note that this is part 1 of a four-part series)
IEInternals: Understanding Enhanced Protected Mode
IE Blog: Enhanced protected mode
Hope this helps...
-- Lance
I'm currently working on a project that renders emails in HTML format to a Silverlight 5 app. The app is intended to be viewed via a web browser and not an 'Out of browser' app. The WebBrowser control was initially used, but I'm having issues with it. A message stating that IE needs elevated permissions and such. After reading how to properly implement the WebBrowser control by signing the .xap file and installing certificates it seems to work when I run it locally, but when I publish to the server (Windows Server 2008), it doesn't seem to work.
I tried to implement an alternative I found -> http://blogs.msdn.com/b/delay/archive/2007/09/10/bringing-a-bit-of-html-to-silverlight-htmltextblock-makes-rich-text-display-easy.aspx, but that didn't seem to work as the HTML I'm trying to render has many tags not supported in that example.
I also took a look at the Frame control http://msdn.microsoft.com/en-us/library/system.windows.controls.frame(v=vs.95).aspx but not sure if that would solve my problem either.
So if anyone can guide me into the right direction of either how I can get the WebBrowser control to work when pushed to the server or perhaps another alternative it would be greatly appreciated.
I am working on an intranet website within a corporate company where there is the Internet Explorer 8 (running on Windows XP, so cannot upgrade to IE9) used as a standard (and the only one) browser and I am dealing with the Compatibility View Mode feature. The website is based on ASP.NET 2.0 and the web server is Windows Server 2003 with IIS6.
It is not possible to switch to any other browser because some other critical third party web based applications require Internet Explorer (and ActiveX) to run properly.
I would like to ask whether there is a way how to (programmaticaly, using a http header ...) override the Internet Explorer's browser mode in case the Compatibility View Mode is turned on for Intranet websites by default or, in other words, how to force the Internet Explorer to use the IE8 Browser Mode rather than the IE8 Compatibility Mode.
I have tried to add the X-UA-Compatible http header set to IE=Edge (or IE=8) in the IIS configuration but it only affects the Document Mode, never the Browser Mode.
Thanks for any help.
Browser mode refers to the user-agent string and, IIRC, it controls the UA string that's sent to a server during HTTP negotiation. The only documented way to control that is to use the F12 developer tools.
You may want to look at Enterprise Mode[1] (EMIE), supported for Win 7 and later. When EMIE is enabled for IE, IE11 behaves and acts like IE8. This includes the UA String.
You are correct, x-ua-compatible controls only the document mode. There was a feature control key (FEATURE_BROWSER_EMULATION [2]) that might've helped, but it's unclear whether that's still supported in current versions of IE. (See the Extensibility Improvements link on that page for technical details.)
Hope this helps...
References:
[1] - http://technet.microsoft.com/en-us/library/dn640687
[2] - http://msdn.microsoft.com/en-us/library/ie/ee330730(v=vs.85).aspx#browser_emulation
I'm working on a corporate intranet and we have recently redesigned it using all sorts of CSS3 goodness as specified by a design agency. Our corporate standard browser is (still) IE8 so in order to make the CSS3 work I employed CSS3 PIE (http://css3pie.com/) which recreates the CSS functionality using VML via a .htc file - and it works great. However I've noticed that the http_referer value for pages viewed in IE8 is being returned as the location for pie.htc instead of the actual referring page and it was working just fine before the redesign. Firefox is tolerated as an alternative browser and for pages viewed in that browser all the http_referer values are as they should be. This is causing quite a headache for forms which redirect using this variable, as well as the logs which dump various environment variables to database for easy querying - and the guys who analyse the stats aren't remotely happy!
I have flagged this with the developer of CSS3 PIE and it's a mystery to him, but before I register a bug I wanted to see if it might be some failing of IIS or some setting I've missed in it (I'm using version 6 on Windows 2003). We have an Linux server with Apache as well for different purposes which I redesigned using the same technique and that doesn't seem to be displaying the same behaviour.
Does anyone have any related experience with PIE or any other .htc files on IIS which they were able to solve? Or is it some kind of IE8 bug that will never be fixed?
we experience the same issue. We removed it from the html. It could be an IE bug, I don't see any reason why the referer of the .htc should be the same as the page.
I am thinking about using the TWebBrowser component that comes within Delphi's default pallet of components in a project, but I wonder if it uses the IE version installed on the client machine?
If yes:
then I guess it would share its history, cookies, workoffline and stuff like that?
Can I separate them somehow?
Is there any webbrowser component that is free and is not shared with Internet Explorer on the client?
The current answer is not quite correct. It appears for compatibility purposes, the WebBrowser control will run in IE7 Standards Mode by default unless you add some registry settings.
See:
WebBrowser Control Rendering Modes in IE8 (archive)
More IE8 Extensibility Improvements (archive)
So it's not quite the current IE version. You can also check this if you use fiddler or check the web server logs for the agent string - as it alters the agent string used too!
Yes, TWebBrowser uses whatever IE version is installed on the machine.
Take a look at this similar thread for some possible alternatives..
How to embed a browser object, other than IE<n>, in a Delphi application
Yes, TWebBrowser is tied to Internet Explorer. If you want a standalone HTML viewer, then look at the PBear components.
TWebBrowser is a wrapper around IE ActiveX interface.
So, in the end,
TWebBrowser = Internet Explorer