[FIX] web_editor: prevent wrong DOM operations when editable not in DOM
`getDeepRange` fetched a range on potentially the wrong document and `getTraversedNodes` created a node iterator on potentially the wrong document, when the editable was not in the DOM. Part-of: odoo/odoo#92200
This commit is contained in:
@@ -670,8 +670,8 @@ export function getSelectedNodes(editable) {
|
||||
* @returns {Range}
|
||||
*/
|
||||
export function getDeepRange(editable, { range, sel, splitText, select, correctTripleClick } = {}) {
|
||||
sel = sel || editable.ownerDocument.getSelection();
|
||||
range = range ? range.cloneRange() : sel.rangeCount && sel.getRangeAt(0).cloneRange();
|
||||
sel = sel || editable.parentElement && editable.ownerDocument.getSelection();
|
||||
range = range ? range.cloneRange() : sel && sel.rangeCount && sel.getRangeAt(0).cloneRange();
|
||||
if (!range) return;
|
||||
let start = range.startContainer;
|
||||
let startOffset = range.startOffset;
|
||||
|
||||
Reference in New Issue
Block a user