function supported() {
      var userAgent = this.USER_AGENT.toLowerCase(),

      // Essential for making html elements editable
      hasContentEditableSupport = "contentEditable" in testElement,

      // Following methods are needed in order to interact with the contentEditable area
      hasEditingApiSupport = document.execCommand && document.queryCommandSupported && document.queryCommandState,

      // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+
      hasQuerySelectorSupport = document.querySelector && document.querySelectorAll,

      // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)
      isIncompatibleMobileBrowser = this.isIos() && iosVersion(userAgent) < 5 || userAgent.indexOf("opera mobi") !== -1 || userAgent.indexOf("hpwos/") !== -1;

      return hasContentEditableSupport && hasEditingApiSupport && hasQuerySelectorSupport && !isIncompatibleMobileBrowser;
    }
/**
     * Exclude browsers that are not capable of displaying and handling
     * contentEditable as desired:
     *    - iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable
     *    - IE < 8 create invalid markup and crash randomly from time to time
     *
     * @return {Boolean}
     */
Exclude browsers that are not capable of displaying and handling
contentEditable as desired:
- iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable
- IE < 8 create invalid markup and crash randomly from time to time

@return {Boolean}
Exclude browsers that are not capable of displaying and handling contentEditable as desired : - iPhone iPad ( tested iOS 4 . 2 . 2 ) and Android ( tested 2 . 2 ) refuse to make contentEditables focusable - IE < 8 create invalid markup and crash randomly from time to time @return { Boolean }
function supported() {
      var userAgent = this.USER_AGENT.toLowerCase(),
      hasContentEditableSupport = "contentEditable" in testElement,
      hasEditingApiSupport = document.execCommand && document.queryCommandSupported && document.queryCommandState,
      hasQuerySelectorSupport = document.querySelector && document.querySelectorAll,
      isIncompatibleMobileBrowser = this.isIos() && iosVersion(userAgent) < 5 || userAgent.indexOf("opera mobi") !== -1 || userAgent.indexOf("hpwos/") !== -1;
      return hasContentEditableSupport && hasEditingApiSupport && hasQuerySelectorSupport && !isIncompatibleMobileBrowser;
    }
function supported ( ) { var userAgent = this . USER_AGENT . toLowerCase ( ) , hasContentEditableSupport = "contentEditable" in testElement , hasEditingApiSupport = document . execCommand && document . queryCommandSupported && document . queryCommandState , hasQuerySelectorSupport = document . querySelector && document . querySelectorAll , isIncompatibleMobileBrowser = this . isIos ( ) && iosVersion ( userAgent ) < 5 || userAgent . indexOf ( "opera mobi" ) !== - 1 || userAgent . indexOf ( "hpwos/" ) !== - 1 ; return hasContentEditableSupport && hasEditingApiSupport && hasQuerySelectorSupport && ! isIncompatibleMobileBrowser ; }
Exclude browsers that are not capable of displaying and handling
 contentEditable as desired:
    - iPhone, iPad (tested iOS 4.2.2) and Android (tested 2.2) refuse to make contentEditables focusable
    - IE < 8 create invalid markup and crash randomly from time to time
Exclude browsers that are not capable of displaying and handling contentEditable as desired : - iPhone iPad ( tested iOS 4 . 2 . 2 ) and Android ( tested 2 . 2 ) refuse to make contentEditables focusable - IE < 8 create invalid markup and crash randomly from time to time
// Essential for making html elements editable // Following methods are needed in order to interact with the contentEditable area // document selector apis are only supported by IE 8+, Safari 4+, Chrome and Firefox 3.5+ // contentEditable is unusable in mobile browsers (tested iOS 4.2.2, Android 2.2, Opera Mobile, WebOS 3.05)