Pages: 1
Print
Author Topic: XMetaL 8.0 Enterprise: Internal browser/preview issue  (Read 4209 times)
paorear
Member

Posts: 29


« on: December 16, 2014, 08:32:36 PM »

Hi guys - we do some significant tweaking of the processing logic to create an HTML page for preview. When we load it in response to the preview event, it loads successfully, but it doesn't seem to render as we desire.

Are you using the Windows Shell IE web browser component, or some other browser component?

If we instead use Preview in browser and point to iexplore.exe, all displays as expected.

The page being previewed does reference some javascript and an online jquery URL like:

    <script type="text/javascript" src="https://support.office.com/bundles/jquery"></script>

Why would the external browser preview correctly, but not the internal?

Any help greatly appreciated!

Paul O'Rear
Logged
XMetaLOldTimer
Administrator
Member

Posts: 57


« Reply #1 on: December 17, 2014, 03:21:41 PM »

Yes, XMetaL's Page Preview is implemented by hosting the Shell IE web browser control.  XMetaL will call the control's Navigate2() API passing the BrowserURL property value that your custom script setup.

I am not sure about robustness of said script running within just the IE control versus the stand-alone IE application...but, it is unlikely that is causing your issue.  I suspect Windows Firewall or similar is blocking the XMetaL process from fetching content over http/https.

Regards,
Addam 
Logged

Addam Smith, XMetaL Project Lead & Architect
JustSystems Canada Inc.
paorear
Member

Posts: 29


« Reply #2 on: December 17, 2014, 03:24:58 PM »

Thanks Addam - I was suspecting that with the firewall, too, but have not been able to isolate anything like that yet.

Paul O'Rear
Logged
paorear
Member

Posts: 29


« Reply #3 on: December 18, 2014, 02:16:11 PM »

I found the solution to the issue via this blog post:
http://weblog.west-wind.com/posts/2011/May/21/Web-Browser-Control-Specifying-the-IE-Version

and this documentation:
http://msdn.microsoft.com/en-us/library/ie/ee330730(v=vs.85).aspx

Apparently, the web browser control when hosted in an application defaults to the IE 7 rendering mode. There's no easy way to say "use the latest version" when hosting the control. You can, however, specify a simple registry entry on a per .exe basis that then effectively enables the desired emulation mode for the host application.

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION]
"xmetal80.exe"=dword:00002af9

The problem in my case was that we were leveraging some HTML 5 CSS features that were not supported in IE 7. Making this tweak solved everything.

Hopefully this may help others as well.

Paul O'Rear
Logged
Pages: 1
Print
Jump to:  

email us