IE11: open jquery dialog to load external url in standards mode when the root html page is in quirks mode - dialog

This requirement is on SAP Portal. The current version of Portal doesn't allow me to integrate SAP UI5 application on IE, primarily due to SAP Portal runs on Quirks mode, and UI5 runs on standards mode. We are on IE11, so no issues in Chrome/FF. So, the solution SAP proposes is to open the UI5 application in a new window, and the customer is not happy with this solution. So I was looking for ways to handle this using JQuery. As the Portal runs on Quirks mode (root) when I open the UI5 application (iframe/div) on a jquery dialog its resulting in opening in Quirks mode only.
I've read few posts in SO in similar context, so checking with the experts here to see if there is a way or solution to open/load ui5 application in standards mode using JQuery or JS, as it can't run in quirks mode in IE while on Portal.
Let me know if i need to provide any more details, as my earlier post was put on hold.

Unfortunately, the solution that SAP proposes is the only one available to you.
IE absolutely cannot render standards mode and quirks mode in the same page, not even if they are in different frames or iframes.
The only way you can mix between the two is by having them in separate windows.
It's worth adding here that anything still running in quirks mode is living on borrowed time. Quirks mode is not supported in Microsoft's new Edge browser. For now, you can still run IE11, but there will come a time when support for IE11 is dropped and Edge will become the only MS browser. At that point, you will not be able to use anything that requires quirks mode. I would urge you to plan to make the upgrade now while the transition will be easy, rather than waiting till it is forced on you.

Related

Relatve URL in distant file (XLS)

I have a problem at my job.
I am totally dependent on a website which must certainly date from the eighties ...
In one of the web pages, there is a link to download an excel file (xls). Let's say for example http://example.excel.xls
In this file, there are hyperlinks to other files (sometimes i think the death penalty is a good thing! ^^).
These links are relative :'( (for example \myfile.pdf)
Internet explorer, strangely, are correcting these links by transforming them in absolute path (http://example.myfile.pdf)
Other browsers (chrome, firefox, even the old edge) don't do it natively. By clicking on the link, we arrive in the local cache, where of course there arenot my files ...
I will soon have to remove IE from computers.
I had considered sending a bombshell on the administrators of this website, but afraid of legal repercussions :)
Is it possible, via settings, an addon or whatever, to make one of the browsers behave in the same way as IE?
I am very grateful for the help you will give me
You had asked,"Is it possible, via settings, an addon or whatever, to make one of the browsers behave in the same way as IE?"
I suggest you make a test with the MS Edge (Chromium) browser.
The MS Edge (Chromium) browser comes with the IE mode feature.
IE mode on Microsoft Edge makes it easy to use all of the sites your organization needs in a single browser. It uses the integrated Chromium engine for modern sites, and it uses the Trident MSHTML engine from Internet Explorer 11 (IE11) for legacy sites.
To configure IE mode, I suggest you refer to Configure IE mode policies. You can refer to the document and configure the necessary policies to enable the IE mode.
It can help you to load your legacy site in the Edge browser using the IE mode which can help you to fix the said issue.

Javascript menu fails to load - but only when Coded UI tests interact with it

As part of a set of Coded UI tests, a menu is clicked. However, the menu (which uses Javascript) fails to load the menu options.
The menus work fine when I run the test manually. If I refresh the page while the tests are running (or re-launch the browser), the menu options then load.
But what is weirder is this only occurs on a remote test environment. When I run the tests locally on my own machine, the menus work even when the Coded UI tests are executing the tests.
It makes absolutely no sense to me why the menus would fail to load. Could the Coded UI tests be stopping the Javascript from executing (to load the menu options)? But why does it work when I refresh the page?
Comparing my own environment and the test environment - there are no differences that I can see. I'm testing against the exact same web application (the URL points to the same web server). It's the same version of Internet Explorer, and all the settings are the same, that I can see. Same operating system too (Windows 7).
Any ideas?
One thing to note is that the tests worked fine under IE7 document mode - although the Javascript behaviour could be different here perhaps. Currently, I have the tests running against the web application on IE9 document mode. Changing the document mode to Quirks mode also allowed the tests to work in some situations, but only for a few tests.
I've figured out the reason for this is that I have been recording tests in IE9 Compatibility Mode and under IE9 Document Mode. IE9 Document mode is not supported for action recordings with VS2010.
However, even if I switch the document mode to IE8 Document Mode during test playback on the remote environment, browser dialogs fail.
Therefore, there is no real solution to this problem.
Furthermore, I would thus contest Microsoft's claim that coded UI tests are compatible with IE9 (even with VS2010 SP1) for this reason.
So I'm left with no choice but to wait until VS2012 Coded UI test tools (which offer full support for IE9, supposedly) before I can test any web pages which have browser dialogs or JavaScript menus.
I ran into a similar problem - some of the advanced javascript on my page simply fails when a Coded UI test run by a test agent is attempting to manipulate it (VS2010, IE9 standard).
When switching to compatability mode (IE9 compat/IE7 doc mode) we had a different issue we just resolved - the innertext of the controls changed significantly, which was breaking our search/filter properties.
Updated those properties and the tests now work correctly in compatibility mode on the VM, or in IE9 standard on my machine.

How to control "Browser mode" in Internet Explorer 9 by commandline

I still haven't been able to find a solution to this problem. We have an application that launches a browser window but the underlying third party addin that we are using doesn't support IE9 yet. I know that I can switch to Browser mode for IE8 by tapping F12 and select this.
Is there a way to control this on the startup in the command line? Cause as it is now we have problem when running the application when it opens new windows and automatically tries to execute this third party addin that is required.
And no we haven't an option, we are forced to use this third party addin but would like to support that installation of IE9 as well.
I don't know if you have any control over the content being rendered in the browser, but if you do, IE lets you use META tags to force the browser into a rendering mode of a specific IE version. More info at MSDN right here
Also, further down the page there are instructions on how to set up your web server to tell IE which mode to use when it's requesting the page. (If that is of any use to you)
Unfortunately all information I can find on the subject (and I did a comprehensive search for my own project) indicates that there is no such option, or at least not in the general release
of IE.
Here's Microsoft's "official"
list of currently supported IE command line options

Good reasons for not letting the browser launch local applications

I know this might be a no-brainer, but please read on.
I also know it's generally not considered a good idea, maybe the worst, to let a browser run and interact with local apps, even in an intranet context.
We use Citrix for home-office, and people really like it. Now, they would like the same kind of environment at work, a nice page where every important application/document/folder is nicely arranged and classified in an orderly fashion. These folks are not particularly tech savvy; I don't even consider thinking that they could understand the difference between remote delivered applications and local ones.
So, I've been asked if it's possible. Of course, it is, with IE's good ol' ActiveX controls. And I even made a working prototype (that's where it hurts).
But now, I doubt. Isn't it madness to allow such 'dangerous' ActiveX controls, even in the 'local intranet' zone? People will use the same browser to surf the web, can I fully trust IE? Isn't there a risk that Microsoft would just disable those controls in future updates/versions? What if a website, or any kind of malware, just put another site on the trust list? With that extent of control, you could as well uninstall every protection and just run amok 'till you got hanged by the IT dept.
I'm about to confront my superiors with the fact that, even if they saw it is doable, it would be a very bad thing. So I'm desperately in need of good and strong arguments, because "let's don't" won't do it.
Of course, if there is nothing to be scared of, that'll be nice too. But I strongly doubt that.
We use Citrix for home-office, and people really like it. Now, they would like the same kind of environment at work, a nice page where every important application/document/folder is nicely arranged and classified in an orderly fashion
I haven't used Citrix very many times, but what's it got to do with executing local applications? I don't see how "People like Citrix" and "browser executing local applications" relate at all?
If the people are accessing your Citrix server from home, and want the same experience in the office, then buy a cheap PC, and run the exact same Citrix software they run on their home computers. Put this computer in the corner and tell them to go use it. They'll be overjoyed.
Isn't it madness to allow such 'dangerous' ActiveX controls, even in the 'local intranet' zone ? People will use the same browser to surf the web, can I fully trust IE ?
Put it this way. IE has built-in support for AX controls. It uses it's security mechanisms to prevent them from running unless in a trusted site. By default, no sites are trusted at all.
If you use IE at all then you're putting yourself at the mercy of these security mechanisms. Whether or not you tell it to trust the local intranet is beside the point, and isn't going to affect the operation of any other zones.
The good old security holes that require you to reboot your computer every few weeks when MS issues a patch will continue to exist and cause problems, regardless of whether you allow ActiveX in your local intranet.
Isn't there a risk that Microsoft would just disable those controls in future updates / versions ?
Since XP-SP2, Microsoft has been making it increasingly difficult to use ActiveX controls. I don't know how many scary looking warning messages and "This might destroy your computer" dialogs you have to click through these days to get them to run, but it's quite a few. This will only get worse over time.
Microsoft is walking a fine line. On one hand, they regularly send ActiveX killbits with Windows Update to remove/disable applications that have been misbehaving. On the other hand, the latest version of Sharepoint 2007 (can't speak for earlier versions) allows for Office documents to be opened by clicking a link in the browser, and edited in the local application. When the edit is finished, the changes are transmitted back to the server and the webpage (generally) is refreshed. This is only an IE thing, as Firefox will throw up an error message.
I can see the logic behind it, though. Until Microsoft gets all of their apps 'in the cloud', there are cases that need to bridge the gap between the old client-side apps and a more web-centric business environment. While there is likely a non-web workaround, more and more information workers have come to expect that a large portion of their work will be done in a browser. Anything that makes the integration with the desktop easier is not going to be opposed by anyone except the sysadmins.
The standard citrix homepage (or how we use it) is a simple web page with program icons. Click on it, and the application get's delivered to you. People want the same thing, at work, with their applications/folders/documents. And because I'm a web developer, and they asked me, I do it with a web page... Perhaps I should pass the whole thing over to the VB guy..
Ahh... I know of 2 ways to accomplish this:
You can embed internet explorer into an application, and hook into it and intercept certain kinds of URL's and so on
I saw this done a few years ago - a telephony application embedded internet explorer in itself, and loaded some specially formatted webpages.
In the webpage there was this:
Call John Smith
Normally this would be a broken URL, but when the user clicked on this link, the application containing the embedded IE got notified, and proceeded to execute it's own custom code to dial the number from the URL.
You could get your VB guy to write an application which basically just wraps IE, and has handlers for executing applications. You could then code normal webpages with links to just open applications, and the VB app would launch them. This allows you to write your own security stuff (like, only launch applications in a preset list, or so on) into the VB app, and because VB is launching them, not IE, none of the IE security issues will be involved.
The second way is with browser plug-ins.
For example, skype comes with a Firefox plug-in, which looks for phone-numbers in web-pages, and attaches special links to them. When you click on these links it invokes skype - you could conceivably do something similar for launching your citrix apps.
You'd then be tied to firefox though. Writing plugins for IE is much harder than for FF, I wouldn't go down that path unless forced to.

Web in a desktop application: Good web browser controls?

I've been utlising a "web browser control" in desktop based applications (in my case Windows Forms .NET) for a number of years. I mostly use it to create a familiar flow-based user interface that also allows a seamless transition to the internet where required.
I'm really tired of the IE browser control because of the poor quality html it generates on output. Also, I guess that it is really just IE7 behind the scenes and so has many of that browser "issues". Despite this, it is quite a powerful control and provides rich interaction with your desktop app.
So, what other alternatives to the IE browser control are there? I looked at a Mosaic equivalent a year ago but was disappointed with the number of unimplemented features, maybe this has improved recently?
hmm..Interestingly
Mozilla seems to provide ActiveX control
K-Melon is another Gecko based browser control
Popular layout engines:
Mozilla Gecko
KHTML
WebKit (based on KHTML)
Though I'm not sure how easy it is to embed those in a .Net app.

Resources