*/
IMP.unblockImages = function(e)
{
- var callback, imgs,
+ var callback,
elt = e.element().up('TABLE.mimeStatusMessage'),
- iframe = elt.up().next('.htmlMsgData').down('IFRAME'),
+ iframe = elt.up().next('.htmlMsgData'),
iframeid = iframe.readAttribute('id'),
+ imgload = false,
s = new Selector('[htmlimgblocked]');
e.stop();
}
callback = this.imgOnload.bind(this, iframeid);
- imgs = s.findElements(iframe.contentWindow.document);
- IMP.imgs[iframeid] = imgs.size();
- imgs.each(function(img) {
- img.onload = callback;
+ s.findElements(iframe.contentWindow.document).each(function(img) {
var src = decodeURIComponent(img.getAttribute('htmlimgblocked'));
if (img.getAttribute('src')) {
+ img.onload = callback;
+ ++IMP.imgs[iframeid];
img.setAttribute('src', src);
+ imgload = true;
} else if (img.getAttribute('background')) {
img.setAttribute('background', src);
} else if (img.style.backgroundImage) {
// on the page uses the same expression, it will break the next time
// it is used.
delete Selector._cache['[htmlimgblocked]'];
+
+ if (!imgload) {
+ this.iframeResize(iframeid);
+ }
};
IMP.imgOnload = function(id)
if (!defer && Prototype.Browser.IE) {
this.iframeResize.bind(this, id, true).defer();
} else {
- id.up().setStyle({ height: Math.max(id.contentWindow.document.body.scrollHeight, id.contentWindow.document.lastChild.scrollHeight) + 'px' });
+ id.setStyle({ height: Math.max(id.contentWindow.document.body.offsetHeight, id.contentWindow.document.lastChild.offsetHeight) + 'px' });
}
};
$uid = 'htmldata_' . uniqid(mt_rand());
$data['js'] = array('IMP.iframeInject("' . $uid . '", ' . Horde_Serialize::serialize($data['data'], Horde_Serialize::JSON, $this->_mimepart->getCharset()) . ')');
- $data['data'] = '<DIV class="htmlMsgData"><IFRAME id="' . $uid . '" src="javascript:false" frameborder="0"></IFRAME></DIV>' .
+ $data['data'] = '<IFRAME class="htmlMsgData" id="' . $uid . '" src="javascript:false" frameborder="0"></IFRAME>' .
Horde_Util::bufferOutput(array('Horde', 'addScriptFile'), 'imp.js', 'imp');
$data['type'] = 'text/html; charset=UTF-8';