[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:
@@ -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);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user