Chame onresize da página de conteúdo do ASP.NET
-
09-06-2019 - |
Pergunta
Eu tenho um método JavaScript que preciso executar em uma de minhas páginas, em particular, o onresize
evento.
No entanto, não vejo como posso definir esse evento na minha página de conteúdo.Eu gostaria de poder colocá-lo na minha página mestra, mas não preciso que o método seja chamado em todas as páginas que usam essa página mestra.
Qualquer ajuda seria apreciada.
Solução
Coloque o seguinte em sua página de conteúdo:
<script type="text/javascript">
// here is a cross-browser compatible way of connecting
// handlers to events, in case you don't have one
function attachEventHandler(element, eventToHandle, eventHandler) {
if(element.attachEvent) {
element.attachEvent(eventToHandle, eventHandler);
} else if(element.addEventListener) {
element.addEventListener(eventToHandle.replace("on", ""), eventHandler, false);
} else {
element[eventToHandle] = eventHandler;
}
}
attachEventHandler(window, "onresize", function() {
// the code you want to run when the browser is resized
});
</script>
Esse código deve lhe dar uma ideia básica do que você precisa fazer.Esperamos que você esteja usando uma biblioteca que já possui código para ajudá-lo a escrever manipuladores de eventos e coisas assim.
Outras dicas
Eu tive o mesmo problema e me deparei com esta postagem:
Bug de redimensionamento do IE revisitado
O código acima funciona, mas o IE tem um problema onde o onresize é acionado quando a tag body muda de forma.Este blog fornece um método alternativo que funciona bem
Que tal usar um código como o seguinte em sua página de conteúdo (C#)?
Page.ClientScript.RegisterStartupScript(this.GetType(), "resizeMyPage", "window.onresize=function(){ resizeMyPage();}", true);
Assim, você poderia ter um resizeMyPage
função definida em algum lugar do Javascript e seria executada sempre que o navegador fosse redimensionado!