Как определить, поддерживает ли браузер значение" только для открытого текста " в параметре contenteditable?
Я не могу найти никакой соответствующей информации о параметре "contenteditable" HTML5. Я узнал, что Google Plus использует это для браузеров Chrome:
<div contenteditable="plaintext-only"></div>
Кажется, что никакие другие браузеры не поддерживают это, и это только проприетарное значение Chrome. Я хочу использовать его в своем проекте. Тем не менее, мне нужно обнаружить браузер и узнать, поддерживает ли параметр "только открытый текст".
конечно, я мог обнаружить только Chrome, но могут быть и другие браузеры, которые его поддерживают (Я не знаю ни о каком в данный момент) или другие браузеры основного потока могут начать поддерживать эту функцию в будущем.
поэтому я бы предпочел определить, поддерживается ли функция "только открытый текст", чем обнаружение только браузера Chrome.
кто-нибудь может мне помочь в этом ?
2 ответов
вроде бы webkit-только характеристика. The spec разрешает только" true"," false "и" inherit " как возможные значения атрибута
на ошибка было подано, чтобы добавить поддержку открытого текста в спецификацию редактирования, но забавно, что запрос предназначен для "открытого текста" вместо "только для открытого текста".
изменить: Этот код можно использовать для обнаружения поддержки. демо:
function supportsPlainText()
{
var d = document.createElement("div");
try {
d.contentEditable="PLAINtext-onLY";
} catch(e) {
return false;
}
return d.contentEditable=="plaintext-only";
}
alert(supportsPlainText());
но помните, что делаете браузерные страницы это то, что привело нас к проблеме IE6.
вот альтернатива, если вы предпочитаете не полагаться на отлов исключения выявлять особенности:
function supportsPlaintextEditables () {
var div = document.createElement('div');
div.setAttribute('contenteditable', 'PLAINTEXT-ONLY');
return div.contentEditable === 'plaintext-only';
}
console.log(supportsPlaintextEditables);
//-> true/false
это работает, потому что установка значения атрибута вместо свойства не вызовет исключение SyntaxError, если 'plaintext-only'
является недопустимым значением, вместо этого он установит значение свойства по умолчанию,'inherit'
.
получение свойства после установки атрибута приводит к более низкой строке, поэтому установка значения атрибута в 'PLAINTEXT-ONLY'
будет результат в свойстве со значением 'plaintext-only'
(поддерживаемые/true) или 'inherit'
(не поддерживается/false).