Added handling of contenteditable issues for ff.

This commit is contained in:
Martin Edenhofer 2016-06-21 15:37:52 +02:00
parent 13e2b55289
commit 2f13a28c98

View file

@ -59,6 +59,12 @@
this.preventInput = false this.preventInput = false
// detect firefox / handle contenteditable issues
this.browser = undefined
if ( navigator && navigator.userAgent && navigator.userAgent.search('Firefox') != -1) {
this.browser = 'ff'
}
this.init(); this.init();
} }
@ -104,18 +110,35 @@
document.execCommand('Outdent') document.execCommand('Outdent')
return return
} }
}
// ff issue, inserts <br></br> inside of <li> - not content can be inserted // return & space key being pressed
// to reproduce if (e.keyCode === 13 ) {
// 1. ctrl+alt+l
// 2. 1+enter, 2+enter, 3+enter, 4+enter if (_this.browser === 'ff') {
// 3. use arrows to move after 2, press enter, press arrow down, press enter
// 4. no content can be inserted anymore in this area // ff issue, inserts <br></br> right after contenteditable tag (still in ff47)
// see also https://github.com/martini/zammad/issues/176 // https://bugzilla.mozilla.org/show_bug.cgi?id=911201
if (node.context && node.context.localName == 'ul') { if (node.parent().hasClass('js-textarea')) {
e.preventDefault() e.preventDefault()
document.execCommand('insertHTML', false, '<p></p>') document.execCommand('insertHTML', false, '<p></p>')
console.log('ff issue, inserts <br></br> inside of <li> - not content can be inserted anymore in this area') console.log('ff issue, inserts <br></br> -> <p></p>')
return
}
// ff issue, inserts <br></br> inside of <li> - not content can be inserted
// to reproduce
// 1. ctrl+alt+l
// 2. 1+enter, 2+enter, 3+enter, 4+enter
// 3. use arrows to move after 2, press enter, press arrow down, press enter
// 4. no content can be inserted anymore in this area
// see also https://github.com/martini/zammad/issues/176
if (node.context && node.context.localName == 'ul') {
e.preventDefault()
document.execCommand('insertHTML', false, '<p></p>')
console.log('ff issue, inserts <br></br> inside of <li> - not content can be inserted anymore in this area')
return
}
} }
} }