Dzisiaj dostałem zgłoszenie od jednego z klientów, że jego "okienko" wprowadzania tekstu mogłoby być dłuższe. Dość mnie to zdziwiło, zważywszy na wykorzystanie wspomnianego w tytule pluginu.
Autogrow powoduje "przyrost" okienka wraz z dopisywaniem treści, przez co widzimy co piszemy bez potrzeby "scrollowania".
Okazało się jednak, że z jakiegoś powodu, Autogrow nie działa pod Operą.
Standardowo w takich chwilach, rozpocząłem googlanie i znalazłem ten wątek: link
Rozwiązanie tam zasugerowane, czyli zamiana 65 linijki:
window.frameElement.height = iMainFrameSize ;
Na:
window.frameElement.height = iMainFrameSize; window.frameElement.style.height = iMainFrameSize+"px";
Niestety nie pomogła.Jednak wystarczyło w w linijce 33 dodać do warunku także:
|| FCKBrowserInfo.IsOpera
Aby Autogrow działał w Operze normalnie :) Poniżej zamieszczam całą metodę FCKAutoGrow_Check:
function FCKAutoGrow_Check() { var oInnerDoc = FCK.EditorDocument ; var iFrameHeight, iInnerHeight ; if ( FCKBrowserInfo.IsIE || FCKBrowserInfo.IsOpera ) { iFrameHeight = FCK.EditorWindow.frameElement.offsetHeight ; iInnerHeight = oInnerDoc.body.scrollHeight ; } else { iFrameHeight = FCK.EditorWindow.innerHeight ; iInnerHeight = oInnerDoc.body.offsetHeight ; } var iDiff = iInnerHeight - iFrameHeight ; if ( iDiff != 0 ) { var iMainFrameSize = window.frameElement.offsetHeight ; if ( iDiff > 0 && iMainFrameSize < FCKConfig.AutoGrowMax ) { iMainFrameSize += iDiff ; if ( iMainFrameSize > FCKConfig.AutoGrowMax ) iMainFrameSize = FCKConfig.AutoGrowMax ; } else if ( iDiff < 0 && iMainFrameSize > FCKAutoGrow_Min ) { iMainFrameSize += iDiff ; if ( iMainFrameSize < FCKAutoGrow_Min ) iMainFrameSize = FCKAutoGrow_Min ; } else return ; window.frameElement.height = iMainFrameSize; window.frameElement.style.height = iMainFrameSize+"px"; // Gecko browsers use an onresize handler to update the innermost // IFRAME's height. If the document is modified before the onresize // is triggered, the plugin will miscalculate the new height. Thus, // forcibly trigger onresize. #1336 if ( typeof window.onresize == 'function' ) window.onresize() ; } }