Aprendendo Python Como configurar o path do windows
dez 13

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.


View this Post in: English French Italian Spanish

Artigos relacionados

600 pessoas já leram este artigo.

4 respostas para “Menu do asp.net não funciona no Google Chrome nem no Safari”



  1. 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: English French Italian Spanish



  2. 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: English French Italian Spanish



  3. 5


    View this Comment in: English French Italian Spanish



  4. 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: English French Italian Spanish

Comente