74 lines
2.4 KiB
JavaScript
74 lines
2.4 KiB
JavaScript
// Copyright 2010 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
/**
|
|
* @fileoverview Browser capability checks for the dom package.
|
|
*
|
|
*/
|
|
|
|
|
|
goog.provide('goog.dom.BrowserFeature');
|
|
|
|
goog.require('goog.userAgent');
|
|
|
|
|
|
/**
|
|
* Enum of browser capabilities.
|
|
* @enum {boolean}
|
|
*/
|
|
goog.dom.BrowserFeature = {
|
|
/**
|
|
* Whether attributes 'name' and 'type' can be added to an element after it's
|
|
* created. False in Internet Explorer prior to version 9.
|
|
*/
|
|
CAN_ADD_NAME_OR_TYPE_ATTRIBUTES:
|
|
!goog.userAgent.IE || goog.userAgent.isDocumentModeOrHigher(9),
|
|
|
|
/**
|
|
* Whether we can use element.children to access an element's Element
|
|
* children. Available since Gecko 1.9.1, IE 9. (IE<9 also includes comment
|
|
* nodes in the collection.)
|
|
*/
|
|
CAN_USE_CHILDREN_ATTRIBUTE: !goog.userAgent.GECKO && !goog.userAgent.IE ||
|
|
goog.userAgent.IE && goog.userAgent.isDocumentModeOrHigher(9) ||
|
|
goog.userAgent.GECKO && goog.userAgent.isVersionOrHigher('1.9.1'),
|
|
|
|
/**
|
|
* Opera, Safari 3, and Internet Explorer 9 all support innerText but they
|
|
* include text nodes in script and style tags. Not document-mode-dependent.
|
|
*/
|
|
CAN_USE_INNER_TEXT:
|
|
(goog.userAgent.IE && !goog.userAgent.isVersionOrHigher('9')),
|
|
|
|
/**
|
|
* MSIE, Opera, and Safari>=4 support element.parentElement to access an
|
|
* element's parent if it is an Element.
|
|
*/
|
|
CAN_USE_PARENT_ELEMENT_PROPERTY:
|
|
goog.userAgent.IE || goog.userAgent.OPERA || goog.userAgent.WEBKIT,
|
|
|
|
/**
|
|
* Whether NoScope elements need a scoped element written before them in
|
|
* innerHTML.
|
|
* MSDN: http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx#1
|
|
*/
|
|
INNER_HTML_NEEDS_SCOPED_ELEMENT: goog.userAgent.IE,
|
|
|
|
/**
|
|
* Whether we use legacy IE range API.
|
|
*/
|
|
LEGACY_IE_RANGES:
|
|
goog.userAgent.IE && !goog.userAgent.isDocumentModeOrHigher(9)
|
|
};
|