У меня есть код JavaScript, который будет выполняться в веб-части SharePoint. Я хотел бы, чтобы функция выполнялась при изменении размера окна. Обычно я бы использовал

<html>
  <body onresize="resizeFunction();">
  </body>
</html>

Но в SharePoint все становится запутанным. У меня есть функция onload, которую я могу использовать следующим образом:

_spBodyOnLoadFunctionNames.push('myFunctionName');

И это выполняется в событии onLoad. Есть ли что-то подобное для событий onResize?

0
Nathan DeWitt 1 Июн 2009 в 18:43

2 ответа

Вы можете рассмотреть возможность использования внешней библиотеки javascript, такой как jQuery или прототип и т. д.

Например, в jQuery вы можете попробовать (непроверенный код!!)

$("window").bind("resize", "myFunctionName");

Документы jQuery: http://docs.jquery.com/Events/bind

Информация об использовании jQuery в SharePoint: http://weblogs.asp.net/jan/archive/2008/11/20/sharepoint-2007-and-jquery-1.aspx

РЕДАКТИРОВАТЬ: Если вы не хотите использовать внешнюю библиотеку, при загрузке документа запустите функцию, которая прикрепляет другую функцию к событию изменения размера. Что-то типа:

_spBodyOnLoadFunctionNames.push(function() {
    window.onresize = function() {
         /* resize code here */
    }});

Конечно, вы можете использовать именованные функции.

РЕДАКТИРОВАТЬ 2: определение ваших событий, как указано выше (window.onresize =), подходит только для одного события. Таким образом, если несколько обработчиков событий указаны одинаково для одного и того же события на одной и той же странице, тот из них, который указан последним, «выигрывает». "Правильный" способ сделать это - присоединить обработчик событий, и самый простой способ сделать это - через библиотеку, поскольку они прозрачно обрабатывают межбраузерные различия.

2
Chloraphil 1 Июн 2009 в 19:34
Я бы предпочел не использовать внешнюю библиотеку, если в этом нет необходимости, но если это единственный способ...
 – 
Nathan DeWitt
1 Июн 2009 в 19:23
$(window).resize(function(){                
        alert("Ya its workingggg")  ;       
});
1
Jason Plank 7 Окт 2011 в 00:54