Звоните на сайте со страницы содержимого ASP.NET
У меня есть метод JavaScript, который мне нужно запустить на одной из моих страниц, в частности, onresize
событие.
Тем не менее, я не вижу, как я могу установить это событие со своей страницы контента. Я хотел бы просто разместить его на своей главной странице, но мне не нужно вызывать метод на всех страницах, которые используют эту главную страницу.
Любая помощь будет оценена.
3 ответа
Поместите следующее на своей странице контента:
<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>
Этот код должен дать вам базовое представление о том, что вам нужно делать. Надеюсь, вы используете библиотеку, в которой уже есть код, который поможет вам написать обработчики событий и тому подобное.
У меня была такая же проблема, и я наткнулся на этот пост:
Приведенный выше код работает, но в IE возникает проблема, когда onresize срабатывает, когда тег body меняет форму. Этот блог дает альтернативный метод, который работает хорошо
Как насчет использования кода, подобного следующему на вашей странице контента (C#)?
Page.ClientScript.RegisterStartupScript(this.GetType(), "resizeMyPage", "window.onresize=function(){ resizeMyPage();}", true);
Таким образом, вы могли бы иметь resizeMyPage
Функция определена где-то в Javascript, и она будет запускаться всякий раз, когда изменяется размер браузера!