Este erro, ao contrário do que os outros pensam, não é do Chrome ou do Safari e sim do próprio ASP.NET.
Para gerar o código JavaScript do menu, o ASP.NET verifica qual é o browser do cliente, e se ele suporta ou não JavaScript. Acontece que esta verificação falha em alguns browsers como o Sarafi e consequentemente o Chrome (pois o Chrome foi baseado no Safari), e o ASP.NET então devolve um código que não funciona. Para corrigir isto devemos “forçar” o ASP.NET a executar o JavaScript, para isto setamos a propriedade Page.ClientTarget com o valor “uplevel”. Assim informamos que o cliente possui um moderno “uplevel” browser.
Devemos fazer isto para todas as páginas que utilizarão o menu. O código deverá estar dentro do evento Page_Init da página. Ex:
protected void Page_PreInit(object sender, EventArgs e)
{
if (Page.Request.ServerVariables["http_user_agent"].ToLower().Contains("safari"))
{
Page.ClientTarget = "uplevel";
}
}
Neste código, fazemos uma verificação se o user_agent possui a palavra safari, que servirá também pro chrome e, se sim, forçamos o uplevel.
Para evitar de “copiar” e “colar” o mesmo código em todas as páginas, você poderá aproveitar o que há de melhor da programação orienteda a objetos, a herânça. Para isto crie uma classe herdando de System.Web.UI.Page e coloque este código nela. Para todas as suas páginas, ao invés de herdar diretamente de System.Web.UI.Page, você herda da classe que acabou de criar.





12 de março de 2009 as 18:05
Parabéns Marcus, gostei muito desse artigo!
Eu vinha procurando uma solução a tempos para o menu do ASP.NET que não funcionava corretamente no Chrome e no Safari. A única que achei foi utilizar o CSS Friendly.
Abraço e sucesso
View this Comment in:

5 de maio de 2009 as 17:13
Parabéns Marcus, no Safari e no Chrome teu método funciona que é uma beleza !
Agora no Internet Explorer 8 o menu pull down do asp.net vira uma caixa branca, vc sabe como solucionar este xabu ?
flw
View this Comment in:

8 de maio de 2009 as 10:57
5
View this Comment in:

3 de agosto de 2009 as 15:43
Parabéns pela matéria, resolveu um problemão aqui.
Com relação à pergunta do Guilherme, dá uma olhada nesse link, me resolveu demais:
http://www.bufaloinfo.com.br/ExibeNoticias.aspx?entryid=893827425787204357
View this Comment in:
