0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-22 15:23:29 -05:00

Fix up ranges in weird cases generated by IE (both start and end to be safe).

This commit is contained in:
Gert K. Sønderby 2015-10-02 15:26:16 +02:00
parent 4e33a47401
commit 49ca521704
3 changed files with 30 additions and 2 deletions

View file

@ -2803,6 +2803,20 @@ proto.hasFormat = function ( tag, attributes, range ) {
return false; return false;
} }
// Sanitize range to prevent weird IE artifacts
if ( !range.collapsed &&
range.startContainer.nodeType === TEXT_NODE &&
range.startOffset === range.startContainer.length &&
range.startContainer.nextSibling ) {
range.setStartBefore( range.startContainer.nextSibling );
}
if ( !range.collapsed &&
range.endContainer.nodeType === TEXT_NODE &&
range.endOffset === 0 &&
range.endContainer.nextSibling ) {
range.setEndAfter( range.endContainer.previousSibling );
}
// If the common ancestor is inside the tag we require, we definitely // If the common ancestor is inside the tag we require, we definitely
// have the format. // have the format.
var root = range.commonAncestorContainer, var root = range.commonAncestorContainer,

File diff suppressed because one or more lines are too long

View file

@ -679,6 +679,20 @@ proto.hasFormat = function ( tag, attributes, range ) {
return false; return false;
} }
// Sanitize range to prevent weird IE artifacts
if ( !range.collapsed &&
range.startContainer.nodeType === TEXT_NODE &&
range.startOffset === range.startContainer.length &&
range.startContainer.nextSibling ) {
range.setStartBefore( range.startContainer.nextSibling );
}
if ( !range.collapsed &&
range.endContainer.nodeType === TEXT_NODE &&
range.endOffset === 0 &&
range.endContainer.nextSibling ) {
range.setEndAfter( range.endContainer.previousSibling );
}
// If the common ancestor is inside the tag we require, we definitely // If the common ancestor is inside the tag we require, we definitely
// have the format. // have the format.
var root = range.commonAncestorContainer, var root = range.commonAncestorContainer,