c47eae035f
Basically IE9 does not support innerHTML on table elements, so need to go one level up and wrap everything in a <table> tag. Another issue is that IE9 does not support creating body elements or the matches call when the element is not in the document, updated the test to account for these. BUG=12830 R=jmesserly@google.com Review URL: https://codereview.chromium.org//23646003 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26806 260f80e4-7a28-3924-810f-c04153c831b5
59 lines
1.8 KiB
Plaintext
59 lines
1.8 KiB
Plaintext
// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
part of $LIBRARYNAME;
|
|
|
|
@DocsEditable()
|
|
$(ANNOTATIONS)$(CLASS_MODIFIERS)class $CLASSNAME$EXTENDS$IMPLEMENTS$NATIVESPEC {
|
|
|
|
@DomName('HTMLTableElement.tBodies')
|
|
List<TableSectionElement> get tBodies =>
|
|
new _WrappedList<TableSectionElement>(_tBodies);
|
|
|
|
@DomName('HTMLTableElement.rows')
|
|
List<TableRowElement> get rows =>
|
|
new _WrappedList<TableRowElement>(_rows);
|
|
|
|
TableRowElement addRow() {
|
|
return insertRow(-1);
|
|
}
|
|
|
|
TableCaptionElement createCaption() => _createCaption();
|
|
TableSectionElement createTBody() => _createTBody();
|
|
TableSectionElement createTFoot() => _createTFoot();
|
|
TableSectionElement createTHead() => _createTHead();
|
|
TableRowElement insertRow(int index) => _insertRow(index);
|
|
|
|
$if DART2JS
|
|
TableSectionElement _createTBody() {
|
|
if (JS('bool', '!!#.createTBody', this)) {
|
|
return this._nativeCreateTBody();
|
|
}
|
|
var tbody = new Element.tag('tbody');
|
|
this.children.add(tbody);
|
|
return tbody;
|
|
}
|
|
|
|
@JSName('createTBody')
|
|
TableSectionElement _nativeCreateTBody() native;
|
|
|
|
DocumentFragment createFragment(String html,
|
|
{NodeValidator validator, NodeTreeSanitizer treeSanitizer}) {
|
|
if (Range.supportsCreateContextualFragment) {
|
|
return super.createFragment(
|
|
html, validator: validator, treeSanitizer: treeSanitizer);
|
|
}
|
|
// IE9 workaround which does not support innerHTML on Table elements.
|
|
var contextualHtml = '<table>$html</table>';
|
|
var table = new Element.html(contextualHtml, validator: validator,
|
|
treeSanitizer: treeSanitizer);
|
|
var fragment = new DocumentFragment();
|
|
fragment.nodes.addAll(table.nodes);
|
|
|
|
return fragment;
|
|
}
|
|
$endif
|
|
|
|
$!MEMBERS}
|