HTMLViewer on the desktop has two engines that you can select from, Native and Webkit. Native uses the built-in browser engine on each platform – Webkit on OS X, Internet Explorer on Windows, and Webkit on Linux, if it’s installed. If you select “Webkit”, the Chrome Embedded Browser libraries are included with your built app and HTMLViewer will use that instead. There are pros and cons to each, but usually the reason people choose WebKit over Native on Windows is because choosing Native gets you whatever the minimum version of Internet Explorer is for a particular OS. This means:
Unfortunately this means that you’re often working with an engine that’s way out of date and it makes using the HTMLViewer as a control a real pain if you want to use any relatively new technologies.
There have been a few ideas to fix this over the years, but the most reliable solution I’ve seen has been to modify the registry and tell Windows what version of IE you want to use. Problems include: you can’t really expect an end user to do something like that; it can be risky to edit the registry if you don’t know what you’re doing; and most corporate users are locked out of the registry for that reason anyway.
Now for a better way
If you have control over the content being displayed, that is, you have the ability to modify the HTML being displayed, there is a way for you to get Windows to use a newer engine. You’ll need to add a very specific tag to your html within the <head> section of the page. You can do this one of two ways:
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
This version will tell Windows to use the latest engine it has available. If IE11 is installed, you’ll get the IE11 engine.
<meta http-equiv="X-UA-Compatible" content="IE=8" />
This version tells Windows to use a very specific version of the engine. If you have IE11 installed, it will still use the IE8 engine. Looking for more tips for Xojo on Windows?