mirror of
https://github.com/fastmail/Squire.git
synced 2024-12-22 07:13:08 -05:00
Fix bug in text cursor fixing in IE/Opera.
This commit is contained in:
parent
1d5b841860
commit
7b000293d6
1 changed files with 14 additions and 1 deletions
|
@ -29,6 +29,12 @@ var $True = function () { return true; };
|
||||||
|
|
||||||
var inlineNodeNames = /^(?:A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:FN|EL)|EM|HR|I(?:NPUT|MG|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:U[BP]|PAN|TRONG|AMP)|U)$/;
|
var inlineNodeNames = /^(?:A(?:BBR|CRONYM)?|B(?:R|D[IO])?|C(?:ITE|ODE)|D(?:FN|EL)|EM|HR|I(?:NPUT|MG|NS)?|KBD|Q|R(?:P|T|UBY)|S(?:U[BP]|PAN|TRONG|AMP)|U)$/;
|
||||||
|
|
||||||
|
var leafNodeNames = {
|
||||||
|
BR: 1,
|
||||||
|
IMG: 1,
|
||||||
|
INPUT: 1
|
||||||
|
};
|
||||||
|
|
||||||
var swap = function( node, node2 ) {
|
var swap = function( node, node2 ) {
|
||||||
var parent = node2.parentNode;
|
var parent = node2.parentNode;
|
||||||
if ( parent ) {
|
if ( parent ) {
|
||||||
|
@ -134,6 +140,7 @@ implement( Node, {
|
||||||
|
|
||||||
implement( Text, {
|
implement( Text, {
|
||||||
isInline: $True,
|
isInline: $True,
|
||||||
|
isLeaf: $True,
|
||||||
getLength: function () {
|
getLength: function () {
|
||||||
return this.length;
|
return this.length;
|
||||||
},
|
},
|
||||||
|
@ -150,6 +157,9 @@ implement( Text, {
|
||||||
});
|
});
|
||||||
|
|
||||||
implement( Element, {
|
implement( Element, {
|
||||||
|
isLeaf: function () {
|
||||||
|
return !!leafNodeNames[ this.nodeName ];
|
||||||
|
},
|
||||||
isInline: function () {
|
isInline: function () {
|
||||||
return inlineNodeNames.test( this.nodeName );
|
return inlineNodeNames.test( this.nodeName );
|
||||||
},
|
},
|
||||||
|
@ -396,7 +406,7 @@ implement( Element, {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ( useTextFixer ) {
|
if ( useTextFixer ) {
|
||||||
while ( el.nodeType !== TEXT_NODE ) {
|
while ( !el.isLeaf() ) {
|
||||||
child = el.firstChild;
|
child = el.firstChild;
|
||||||
if ( !child ) {
|
if ( !child ) {
|
||||||
fixer = doc.createTextNode( '' );
|
fixer = doc.createTextNode( '' );
|
||||||
|
@ -404,6 +414,9 @@ implement( Element, {
|
||||||
}
|
}
|
||||||
el = child;
|
el = child;
|
||||||
}
|
}
|
||||||
|
if ( el.isLeaf() && el.nodeType !== TEXT_NODE ) {
|
||||||
|
el.parentNode.insertBefore( doc.createTextNode( '' ), el );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if ( !el.textContent && !el.querySelector( 'BR' ) ) {
|
else if ( !el.textContent && !el.querySelector( 'BR' ) ) {
|
||||||
fixer = doc.createElement( 'BR' );
|
fixer = doc.createElement( 'BR' );
|
||||||
|
|
Loading…
Reference in a new issue