GWT application not working in IE11 - css

I have an application that is using GWT 2.0.4 and running fine on IE8 browser. When opened in IE11, it is giving blank page with error message given below.
com.google.gwt.core.client.JavaScriptException : (TypeError) : Object doesn’t support property or method ‘attachEvent’
The exception was thrown because “attachEvent” is a deprecated function used in older versions of Internet Explorer. IE11 uses “addEventListener” method instead of “attachEvent”.
The user.agent value was set to "ie6" so i changed it to "gecko1_8". After changing user agent it opens the application but the data in table(GWT-ext GridPanel) is getting overlapped over one another, scrollbars are missing and the alignment of menu bar is changed.
It is working fine after enabling the compatibility mode. What is the proper workaround to run my app in IE11 ? Do i need to upgrade GWT and if yes then to which version supports IE11? I don't have to use "X-UA-Compatible=IE8" meta tag....Please help

As with anything on the Web, you should always try to run the latest version, because everything changes around your application. 2.0.4 is 5 years old already!
So yes, upgrade to the latest version of GWT (2.7.0 as of today), and when the next version will come (2.8, in a few weeks) try to upgrade as well.
As a workaround, because it works in IE8, you could probably ask IE11 to emulate it using an X-UA-Compatible with value IE=EmulateIE8. But that's only a temporary workaround, as the next version (Edge, coming in Windows 10 to replace IE) will no longer support X-UA-Compatible (except in the Intranet zone). See the warning at the top of the X-UA-Compatible doc and this announcement by Mirosoft. The real solution is to stay up-to-date with GWT versions, just like you stay up-to-date with browser versions.

Related

Reference error: Can't find variable: IntersectionObserver

I'm trying to use IntersectionObserver in cordova 8.0.0 app which is running on ios 13. When I inspect my app via safari, I see an error on intialization:
ReferenceError: Can't find variable: IntersectionObserver
This would suggest, that IntersectionObserver is not available, and I should use a polyfill. But! I've read many post claiming that IntersectionObserver is nativly supported in iOS safari 12+. And I kinda assume, that cordova would be running nativly available WKWebView, so it should work without polyfill, right?
I've found that I've got IntersectionObserver enabled in my safari experimental features, so maybe there is an option/flag I could use to force enable this feature in my app as well? I'd really like to avoid using polyfill if it's possible..
Thx to any suggestions
We ran into this issue and there is one important thing to call out. While this has been fixed in newer Safari Browsers, this issue still can occur on older devices (despite fully updated Safari). This is due to the fact that the IntersectionObserver feature seems to be deactivated as 'Experimental feature' on older iPhones (I know for fact that this is the case for iPhone 8) - possibly to save resources - see https://youtu.be/qDSXYGybNVU?t=68. So to ensure your application to work you might need to use polyfill as an alternative/fallback nevertheless.
IntersectionObserver API is supported on iOS safari since 12.2. Yet it was supported via 'experimental feature' and enabled by default. I assume that experimental features are not enabled under cordova by default, so far I haven't found a way to configure it to be enabled.
An option is to use polyfill: https://www.npmjs.com/package/intersection-observer. I tested myself and performance is not good enough, it uses either setTimeout or MutationObserver to observe whole document with all options enabled.
I just added this checking
if ('IntersectionObserver' in window) {
// IntersectionObserver initialization code
} else {
// make lazy loading elements to be loaded right away
}
Enjoy

JavaFx web not working with Internet Explorer 11 with JRE7

I note that I cannot be launched on web IE 11 ..
I know that the useragent for IE11 is Trident not MSIE . so I suppose that the reason why I got always notification to install java even its already installed .. but I cannot find temporarily solution for that as guys solve this issue by updating deployJava.js for webstart and by adding "trident" with "msie"...
just note that only windows 7 can install IE11 or its bundled with Windows 8.1 .. you cannot install IE11 or update it to IE11 on windows 8.
again and briefly my questions are :
1- where JavaFX app detect browser agent?
2- is it possible to the modify package that is responsible for that and include jar to project ?
any idea is welcomed ..
Internet Explorer 11 is not a supported configuration for JavaFX in JRE 7.
You can request support for Internet Explorer 11 by filing a feature request in the JavaFX issue tracker. You can link back to this question in your feature request.
I guess what you are saying in your question is that the information Microsoft place in the UserAgent string for IE11 has changed from previous versions and the way to understand the UserAgent string encoded information has changed in IE11 compared to earlier browser releases. These changes mean that the current JavaFX deployment code does not correctly detect it is running in an IE11 environment and perform appropriate operations to enable JavaFX applications to execute in IE11.
I believe that JavaFX packaging code uses a dtjava.js script to detect the target browser. For JavaFX 8 this detection routine is (I believe) the JavaScript detectEnv() method. What you might need to do to get IE11 compatibility is to host your own deployment scripts and replace the dtjava.js in your local deployment scripts with a modified version you have created which is IE 11 compatible (detailed instructions on how to do this are outside the scope of this answer). Even if you do get the dtjava.js script to correctly identify and execute logic for IE 11, there may still be other issues running JavaFX in IE 11 (due to it not being currently a supported deployment platform).
I've made some modifications in dtjava.js and got it to work in IE11
In my case I'm using dtjava.js only for embedding an applet not based in JavaFX, so probably these modifications are not enough to make a JavaFX application run.
I changed the IE detection rule from
ie = isDef(window.execScript);
to
ie = /trident/.test(u);
in detectEnv()
and
if (isDef(d.addEventListener)) {
d.addEventListener("DOMContentLoaded",
invokeCallbacks, false);
}
if (ua.ie && ua.win) {
with
if (isDef(d.addEventListener)) {
d.addEventListener("DOMContentLoaded",
invokeCallbacks, false);
}
else if (isDef(d.attachEvent)) {
in init() function.
Of course, these are hacky changes not very tested (only Explorer 10, 11 and latest FIrefox and Chrome). Follow at your own risk...

How to use Gecko engine in ABCPDF v7 Classic ASP

We have just moved an old website to a new hosting company who has ABCPDF version 7 installed on a Windows Server 2012 VPS.
Unfortunately the existing code is not working and from my research it is due to version 7 not being compatible with later versions of IE, such as that installed on Server 2012.
So I was trying to switch to use the Gecko engine. I installed Firefox on the server. And added the code to the Classic ASP script straight after the doc object was created:
doc.HtmlOptions.Engine = 1
Unfortunately this results in the following error:
Object doesn't support this property or method: 'HtmlOptions.Engine'
How can I change to use the Gecko engine, and am I doing this right or is there some other issue?
As a last resort is it possible to install an older version of IE on Server 2012?
I think you probably have no choice but to pay for a later version. I've been there myself
Gecko support was introduced in v8, and it looks as if it uses its own modified version of the display engine rather than the one which comes with Firefox. However as V8 and above support current versions of IE you probably wouldn't want to bother with Gecko.
http://www.websupergoo.com/abcpdf-13.htm
Re Internet Explorer 8 - which is the version I think you need for old versions of ABCpdf - if your server came with IE8 installed to begin with and it's been automatically updated, then it should in theory be possible to roll back to the previous version, or even rebuild the server from scratch, and then block windows update from updating IE. If it came with IE9 or above then you really do need to upgrade ABCpdf

How to remove "SDL Tridion has not been tested with this version of the browser"

I'm seeing the following message in the Tridion CME and am unsure of where the configuration is to that removes it.
Can anybody help?
This means that you are using an unsupported browser, or unsupported version.
If you want to avoid receiving this message when using an unsupported version you can modify the file \web\webui\webroot\configuration\system.config
In this file you need to add your desired browser into the <supportedbrowsers> node
UPDATE:
As stated on the comments, your team need to be aware that they are working on an unsupported version, even if the popup does not remind it for you.
As a rule of thumb, if the GUI seems broken or buggy on any specific action, retest against a supported version.
TIP: To overcome the problem of updating the system.config with every new version. (It's hard to keep pace nowadays with new chrome of firefox versions!) you can use regular expressions:
<supportedbrowsers>
<browser name="Any Mozilla Firefox" regExp="Firefox/.*"/>
<browser name="Any Google Chrome" regExp="Chrome/.*"/>
...
</supportedbrowsers>
Easy "removal". Ensure you make note the the client that you've removed a note from a supported point of view. Annoying as a developer indeed. A reminder to an - unsupported - client when you leave is really important.
I believe you should not try to ignore the message. Try to find out the right supported browser based on version of your SDL Tridion and please note you make need to so some browser settings as well.

Google Chrome/Safari Same Browser Name and Version !

I have a asp.net website in which i check for supported browser.
That is i user
Request.Browser.Browser -- for the browser name
and
Request.Browser.MajorVersion for the browser version
Problem here is browser Safari and Google Chrome show me the same value !!!
That is AppleMAC-Safari(name) and version would be 5..
How do i differentiate between google chrome and safari then ???
Thanks ,
Francis P.
For each browser that Request.Browser.Browser can detect, there must be a *.browser file in C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\Browsers. Chrome and Safari are missing in version 2 of the .NET framework, but you can download an updated set of browser configurations from codeplex: http://aspnet.codeplex.com/releases/view/41420
There could possibly occur some compatibility issues (since these files are made for .NET 4). In such cases you may have a look at this blog post: http://stephenwalther.com/blog/archive/2010/03/05/use-asp.net-4-browser-definitions-with-asp.net-3.5.aspx

Resources