IE document compatibility in iFrame - angularjs

I have a web application that is used in an iframe by a web portal (SAP enterprise portal). The portal responds with header x-ua-compatible IE=EmulateIE7. This messes up my application which uses AngularJS. I tried following in my application but it does not work. How can I tell IE to use standard mode with my application?
Note changing the portal is not an option at this time.
<meta http-equiv="X-UA-Compatible" content="Edge"/>

What do you mean by "Note changing the portal is not an option at this time."?
the best option is use header
in the page with angular application
othewise you could use the Iview DocumentObjectModel this iview has the property to define with way you want this page gets rendered
you could choose between
IE7Emulated
standards with it's edge mode for IE

Related

XAML WebBrowser emulation without registry change

I am trying to render some HTML page of mine hosted on a NodeJS in a WPF app.
I have tried few things and the following option seems the most convenient:
C# webbrowser Ajax call
However it is modifying the registry which I cannot (company policy).
Therefore would there be a way to do the same on the fly? ie. load the WebBrowser with this setup without updating the registry?
Thank you
You might be able to do this with the XUA compatible meta tag.
<meta http-equiv="x-ua-compatible" content="IE=11">
I don't know if you have access to the site's content or not. If you do, then just put in right there in the HTML.
If you do not own the page, there are ways modify the page and dynamically inject this tag with a bit of com interop from mshtml.
Therefore would there be a way to do the same on the fly? ie. load the WebBrowser with this setup without updating the registry?
I am afraid not. There is no property or method of the WebBrowser control itself that you can set or call.
Changing the registry keys or use another (third-party) control are your only options I would say.

Using jstree "offline" with IE11

I'm using jstree v3.2.1 wrapped with ngJsTree in an AngularJS web-app to be used mainly on IE11 browsers.
I found that users who could not connect to the internet, due to their company policies, could not load properly the jstree I use within my forementioned web-app, on the other hand users who do access to the internet see everything just fine.
In particular the former users see just the spinner of jstree loading frozen and the "Loading..." text, which is strange because I set up the jstree config object to translate it into another string.
Moreover, I put a breakpoint inside the callback function associated to the ready event, and it never gets called.
Finally, the jstree part of my web-app works uber fine with both online and offline users when they reach it through Chrome or Firefox.
Is there any restriction on the online/offline usage of this library when in combo with some sort of IE11 strict security policy?
Thank you in advance
We had the same problem with IE11 in an environment without online access and custom security policies.
In our case the security policies somehow influenced the compatibility mode of IE which caused the problem.
After setting the compatibility mode manually in the Page header as described below everything works:
(After the Deployment we also needed to close and reopen the Browser, simply pressing refresh didn't change the compatibilty mode)
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=10; IE=9; IE=8;" />

What's the workflow for developing a web page for Kik Messenger

I'm looking at what's required to develop a web page for the Kik Messenger in-app browser and I'm confused as to how the development workflow is supposed to work.
The API Docs say that "To launch your webpage in Kik simply open the sidebar and type in the URL to your webpage.", which would be fine except for the fact that the "sidebar" no longer exists in the current version of the app and it no longer seems to be possible to enter an arbitrary URL(*).
* EDIT: It looks like you can open an arbitrary URL in the browser by entering it into chat and then tapping on it.
Given these restrictions, how do folks test their web pages with the app? Do you have to just use the Chrome Extension until deployment?
Related question: How do you make Kik aware of your web page? Some of the other questions on this site imply that you have to wait for their web crawler to index it. Is that the case? If so, is exactly how this works documented anywhere? I feel like I've missed a doc link along the way.
In December they removed the NEW Apps tab in the Discovery Section as well as the option to access arbitrary URLs. (as you pointed out) For testing I usually use the Chrome extension or access my testserver via an URL from a chat.
But since the NEW tab is currently removed, it is not very feasible to release new Kik Apps at the moment, since people would only be able to discover your App by using the Search function and getting into top 100 would be very unlikly this way. I contacted Kik if the removal of the NEW tab was a permanent change, to which I got the response that they are currently revamping their platform and new solutions on the way for the stuff they are moving.
So if u are currently working on a Kik App I would recommend waiting with releasing it until possible future updates of the Kik Browser are released.
As for your other question to make the crawler find you app, you simply have to add some Meta tags into your header:
<meta name="description" content="app description">
<link rel="kik-icon" href="your image")">
<link rel="canonical" href="your domain">
<script src="http://cdn.kik.com/kik/2.0.5/kik.js"></script>

Silverlight 5 app from iframe not closing in IE9

I am developing a web application using Dojo v1.8 and my target machine runs IE9 and Silverlight 5.1.20125. In this web app, the user can select a tool from a toolbar at the top of the page that will open up in a content pane (or an IFrame if it is an external tool) below the toolbar (only one tool can run at a time).
The bug I am encountering is that one of the external tools that opens in an IFrame runs a Silverlight app, and if the user tries to select another tool, the new tool won't open and the Silverlight application stays there. After checking the DOM Tree, all references to the Silverlight application have been wiped, and the new tool is there instead (which is the desired behavior).
So my question is, why is the Silverlight Application still being viewed even when it is gone from the DOM Tree, and is there a way to programmatically close it from Javascript? Also, I do NOT have access to the source code of the Silverlight Application.
Well I did not manage to solve this issue directly. However, there was another bug that I ran into which involved the java swing library not working on the production machine. The solution was to add the following tag as the first element of head:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8>
This forces IE to use IE8 instead of IE9. This trick solved this other issue, but inadvertently solved this issue as well. Here are several links that helped lead me to the solution (amongst others):
http://sourceforge.net/p/djproject/discussion/671154/thread/d7662f61
http://msdn.microsoft.com/en-us/ie/ff959805.aspx#_Compatibility_issues_with_1

MSIEs WebBrowser control hosted in winforms app runs in compatibility mode

I'm hosting MSIE in a winforms form. Unfortunately it insists on running in compatibility mode regardless of if I give it a page that runs in IE8 mode in stand-alone IE. The effect of that is that some content that renders correctly in stand-alone MSIE gets completely mis-aligned and messed up in the hosted control.
Besides document type etc, is there some magic way to tell the webbrowser that I want it to render the page the same way as if I loaded it in stand-alone MSIE?
I don't want to use the registry key override ( http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx ) due to my form being part of an add-in for another app. I don't want to change the IE behavior for the main app and I don't want to change it for other add-ins running under that app. I only want this to work within the browser hosted in my form, not app-wide and not process-wide.
I have not tested this, but how about using the META tag, along with the HTTP-EQUIV attribute, to set the X-UA-COMPATIBLE value to IE=8, which instructs the web browser to display a page in IE 8 standards mode. An example would be:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
From this line in the following article it seems that this should work.
By default, applications hosting the
WebBrowser Control open
standards-based pages in IE7 mode
unless the page contains an
appropriate X-UA-Compatible header.
You can change this by adding the name
of the application executable file to
the FEATURE_BROWSER_EMULATION feature
control key and setting the value
accordingly.
To change the default behavior of the Web Browser Control running in your application to match what IE itself does, you must set the FEATURE_BROWSER_EMULATION Feature Control Key.
For instance, you can mimic IE8's behavior (allowing sites to render in IE8 standards mode) as follows.
Inside HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Main\FeatureControl
Create a new key named FEATURE_BROWSER_EMULATION
Inside that key, add a new REG_DWORD with value 8000 with the name of your application's executable. E.g.:
"YourApp.exe" = dword 8000 (Hex: 0x1F40)
Further details are at:
http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx

Resources