martes, 13 de abril de 2010

Ajax no anda en chrome o safari

Visual Studio parece generar siempre paginas que andan en internet explorer, pero que tienen varios(o muchos) problemas en otros browsers.
Es el caso de Google Chrome por ejemplo. En .net 3.5 con los controles del ajaxControlToolkit tengo problemas de carga de extenders, scripts que no se cargan, asi que encontre esta solución.
En vez de usar el viejo ScriptManager se usa el nuevo que viene con el AjaxControlToolkit: ToolkitScriptManager

Por ejemplo asi:



<ajax:toolkitscriptmanager id="scripts" runat="server" scriptmode="Release" enablehistory="true" EnableSecureHistoryState="false" EnablePageMethods="True" CombineScripts="true" >
<Scripts>
<asp:ScriptReference Path="~/chrome.js" />
</Scripts>
</ajax:ToolkitScriptManager>

crear un archivo chrome.js y llenarlo con:
Sys.Browser.WebKit = {}; //Safari 3 is considered WebKit
if (navigator.userAgent.indexOf('WebKit/') > -1) {
Sys.Browser.agent = Sys.Browser.WebKit;
Sys.Browser.version = parseFloat(navigator.userAgent.match(/WebKit\/(\d+(\.\d+)?)/)[1]);
Sys.Browser.name = 'WebKit';
}


3 comentarios: