dom helper
This commit is contained in:
parent
ccc81312a1
commit
a57cdbd5b5
3 changed files with 18 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
|||
import messages from 'shared/messages';
|
||||
import Hint from './hint';
|
||||
import * as dom from 'shared/utils/dom';
|
||||
|
||||
const TARGET_SELECTOR = [
|
||||
'a', 'button', 'input', 'textarea',
|
||||
|
@ -136,10 +137,11 @@ export default class Follow {
|
|||
case 'button':
|
||||
return element.click();
|
||||
default:
|
||||
// it may contenteditable
|
||||
if (dom.isContentEditable(element)) {
|
||||
return element.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onMessage(message, sender) {
|
||||
switch (message.type) {
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
import * as dom from 'shared/utils/dom';
|
||||
|
||||
const modifierdKeyName = (name) => {
|
||||
if (name.length === 1) {
|
||||
return name.toUpperCase();
|
||||
|
@ -78,12 +80,12 @@ export default class InputComponent {
|
|||
}
|
||||
|
||||
fromInput(e) {
|
||||
if (!e.target) {
|
||||
return false;
|
||||
}
|
||||
return e.target instanceof HTMLInputElement ||
|
||||
e.target instanceof HTMLTextAreaElement ||
|
||||
e.target instanceof HTMLSelectElement ||
|
||||
e.target instanceof HTMLElement &&
|
||||
e.target.hasAttribute('contenteditable') && (
|
||||
e.target.getAttribute('contenteditable').toLowerCase() === 'true' ||
|
||||
e.target.getAttribute('contenteditable').toLowerCase() === '');
|
||||
dom.isContentEditable(e.target);
|
||||
}
|
||||
}
|
||||
|
|
8
src/shared/utils/dom.js
Normal file
8
src/shared/utils/dom.js
Normal file
|
@ -0,0 +1,8 @@
|
|||
const isContentEditable = (element) => {
|
||||
return element.hasAttribute('contenteditable') && (
|
||||
element.getAttribute('contenteditable').toLowerCase() === 'true' ||
|
||||
element.getAttribute('contenteditable').toLowerCase() === ''
|
||||
);
|
||||
};
|
||||
|
||||
export { isContentEditable };
|
Reference in a new issue