更新时间:2023-11-28 16:50:34
将其发布为答案是因为可以解决问题,但严格意义上并不是我要的.
Posting this as an answer because fixes the problem, but it's not strictly what I'm asking for.
我还在等待更清洁的解决方案.
I'm still waiting for a cleaner solution.
var notTextual = [
'button',
'checkbox',
'hidden',
'image',
'radio',
'reset',
'submit'
];
if (element.getAttribute === undefined) {
return false;
}
var eTag = element.tagName;
var eType = element.getAttribute('type');
var isTextInput = (eTag === 'INPUT' || eTag === 'TEXTAREA') && !notTextual.contains(eType);
var isEnabledInput = element.disabled === false && element.readOnly === false;
var isContentEditable = ( element.contentEditable && element.contentEditable === true );
// stop for enabled text inputs, selects and contentEditable areas
return (isTextInput && isEnabledInput) || eType === 'SELECT' || isContentEditable;