function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Jordan@BracketLabsJordan@BracketLabs 

IE9 Issues & Work-arounds

I'm current trying to fix some issues that exist in IE9 with our application.

 

I believe the issues is somehow related to IE9 + Visualforce Ajax components + SOAP Connector, although I'm not getting the same error message as everyone else.

 

In a nutshell, when I perform a 'drag' on an element that triggers the Salesforce web-services connector to update some information the page is re-rendered poorly (elements overlapping one another).

 

I've tried the following:

 

 

Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8');

 

 

To force page-mode into IE8 for the time being, but, this call causes the web-services connector to return a null-page exception because the controller is partially being invoked from the web-service.

 

Also, I've tried placing the following:

 

 

$(document).ready(function() {
	if(Sarissa._SARISSA_IS_IE && parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5)) >=9) {	  
		window.XMLSerializer = function(){};     
		window.XMLSerializer.prototype.serializeToString=function(oNode){return oNode.xml;
		}
	}
});

 

Supposedly, this call should place the document into IE8 Mode after the page has been loaded, and doesn't need to be refreshed after some elements have changed else-where on the DOM due to jQuery correct?

 

This seems to solve the issue on the first page-load, but again after some partial refresh has taken place, no joy?! Should I call it again after each partial refresh?

 

 

When I'm in IE9 Debugging Mode with Browser Mode/Document Mode @ IE9 Standards the issue disappears!

 


 


Jordan@BracketLabsJordan@BracketLabs

I'm cautiously optimistic I've solved this.

 

Per the original directions, which I checked more carefully, I switched my original custom controller class to virtual and than added in the default constructor of a compatability extension class as follows:

 

 

public with sharing virtual class myCustomController {
	/* */
}

This seems to provide for normal operation even with the virtual keyword, and to be bluntly honest, I don't know a ton about the virtual keyword extension. :smileysad:

 

public class CompatibilityExtension extends myCustomController{
	public CompatibilityExtension(){
		Apexpages.currentPage().getHeaders().put('X-UA-Compatible', 'IE=8');
	}
}

But the page doesn't compile?

 

<apex:page controller="mycustomController" extensions="CompatibilityExtension">
 /* */
</apex:page>

 

I realize this isn't compiling because the default contructor in my extension method needs some sort of arguement otherwise it has no idea what it's extending when the VF engine tries to lump it in with other methods?! So I'm trying to figure out a clever way to use the desired method on the 'page'

 

Michael M.Michael M.

I have a similar problem with IE9. But I want to force this browser to IE8 or IE7 document mode.

I implemented both approaches in my project, but nothing happened. My aim is to force IE9 in its IE7 document mode because I want to rotate a link over 90°.

Are there any other solutions? or hints to solve this forcing problem?

 

Greetz