[FIX] web, web_editor: improve browser support for JS lazy loading

opw-2125858

closes odoo/odoo#41371

X-original-commit: d19982b7a22b04ab76c787b9adfffd24552eb5c0
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This commit is contained in:
qsm-odoo
2019-12-04 16:40:03 +00:00
parent 6245ed2bce
commit 8180b46563
2 changed files with 13 additions and 6 deletions
@@ -21,11 +21,13 @@ function waitLazy() {
}
waitingLazy = true;
document.querySelectorAll('.o_wait_lazy_js').forEach(function (element) {
var lazyEls = document.querySelectorAll('.o_wait_lazy_js');
for (var i = 0; i < lazyEls.length; i++) {
var element = lazyEls[i];
blockEvents.forEach(function (evType) {
element.addEventListener(evType, blockFunction);
});
});
}
}
/**
* Unblocks the DOM sections blocked by @see waitLazy and removes the related
@@ -37,12 +39,14 @@ function stopWaitingLazy() {
}
waitingLazy = false;
document.querySelectorAll('.o_wait_lazy_js').forEach(function (element) {
var lazyEls = document.querySelectorAll('.o_wait_lazy_js');
for (var i = 0; i < lazyEls.length; i++) {
var element = lazyEls[i];
blockEvents.forEach(function (evType) {
element.removeEventListener(evType, blockFunction);
});
element.classList.remove('o_wait_lazy_js');
});
}
}
// Start waiting for lazy loading as soon as the DOM is available
@@ -10,7 +10,10 @@
*/
document.addEventListener('DOMContentLoaded', () => {
document.querySelectorAll('textarea.o_wysiwyg_loader').forEach(textarea => {
// Standard loop for better browser support
var textareaEls = document.querySelectorAll('textarea.o_wysiwyg_loader');
for (var i = 0; i < textareaEls.length; i++) {
var textarea = textareaEls[i];
var wrapper = document.createElement('div');
wrapper.classList.add('position-relative', 'o_wysiwyg_wrapper');
@@ -24,7 +27,7 @@ document.addEventListener('DOMContentLoaded', () => {
textarea.parentNode.insertBefore(wrapper, textarea);
wrapper.insertBefore(textarea, loadingElement);
});
}
});
})();