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("chrome"))
{
Page.ClientTarget = "uplevel";
}
}if (Page.Request.ServerVariables["http_user_agent"].ToLower().Contains("chrome"))
{
Page.ClientTarget = "uplevel";
}
Neste código, fazemos uma verificação se o user_agent possui a palavra 'chrome', que servirá também pro safari, 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.
Muito obrigado pela ajuda, amigo.
ResponderExcluirFuncionou bem pra mim cara, valew
ResponderExcluirOlá Amigos
ResponderExcluirtenho um prblema com o chrome numa pagina asp ... esta soluçao pode ser util?
antecipo meus agradecimentos pela força
Mike