04/08/2010 Development / java script

Dica do nosso amigo Bruno Souza "Marronete" ;-)

Pessoal, Segue uma dica para quem tiver problema com safari/Chrome e Microsoft Ajax. Esses browsers não são reconhecidos como “SAFARI”, logo, o controltoolkit não consegue reconhecer o browser e dá um erro de javascript que não pode carregar o js. Para isso existe esse hack abaixo que adiciona a extensão “WebKit” para ser reconhecido pelo js da Microsoft.

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Scripts>
        <asp:ScriptReference Path="~/Scripts/Safari3AjaxHack.js" />
    </Scripts>
</asp:ScriptManager>

The file can exist in any folder in your site, but as kshakir says, it should contain this code:

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';
}

Microsoft and the AjaxControlToolkit project managers tell me they want to fix this bug in the toolkit, so eventually this hack will (hopefully) no longer be necessary. But in the meantime, this solution solves the problem with AjaxControlToolkit scripts not being loaded properly during partial updates.