Динамическое изменение размера iframe в FullCalendar - PullRequest
0 голосов
/ 03 апреля 2012

У меня полное открытие календаря в iframe. У меня есть скрипт от dyn-web.com на родительской странице, который изменяет размер Iframe, и это работает нормально большую часть времени:

function setIframeHeight(id) {
    var ifrm = document.getElementById(id);
    var doc = ifrm.contentDocument ? ifrm.contentDocument : ifrm.contentWindow.document;
    ifrm.style.visibility = 'hidden';
    ifrm.style.height = "10px"; 
    ifrm.style.height = getDocHeight( doc ) + 5+"px";
    ifrm.style.visibility = 'visible';
}

Когда я первоначально открываю календарь, он отлично изменяется, но когда я выбираю другой месяц с более длинным отображением страницы, он не изменяется.

Как я могу вызвать изменение размера в родительском окне?

Это начало моего календаря, но я не могу понять синтаксис для динамического вызова изменения размера. Я играл с параметром высоты, но он должен быть динамическим:

$('#calendar').fullCalendar({
    month: <%=monthStart%>, 
    year: <%=yearStart%>,
    eventSources: 
    [
        { url: <%=esource%>,
          type: 'GET',
          error: function() {
              alert('there was an error while fetching events!');
            }  
          },

1 Ответ

0 голосов
/ 06 апреля 2012

Вам нужно сделать что-то вроде этого:

$('#calendar').fullCalendar({
    month: <%=monthStart%>, 
    year: <%=yearStart%>,
    eventSources: 
    [
    { url: <%=esource%>,
      type: 'GET',
      error: function() {
      alert('there was an error while fetching events! ');
      }      
    },
    viewDisplay: function(view) {
      parent.setIframeHeight(iframeId) ;
    },

Обработчик viewDisplay вызывается каждый раз, когда меняется представление месяца / недели / дня. Вы также можете использовать обработчик windowResize для захвата события, которое происходит после фактического изменения размера.

...