OLD | NEW |
---|---|
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 // TODO(jacobr): use Lists.dart to remove some of the duplicated functionality. | 5 // TODO(jacobr): use Lists.dart to remove some of the duplicated functionality. |
6 class _ChildrenElementList implements ElementList { | 6 class _ChildrenElementList implements ElementList { |
7 // Raw Element. | 7 // Raw Element. |
8 final _element; | 8 final _element; |
9 final _childElements; | 9 final _childElements; |
10 | 10 |
(...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
533 if (match !== null) { | 533 if (match !== null) { |
534 tag = match.group(1).toLowerCase(); | 534 tag = match.group(1).toLowerCase(); |
535 if (_CUSTOM_PARENT_TAG_MAP.containsKey(tag)) { | 535 if (_CUSTOM_PARENT_TAG_MAP.containsKey(tag)) { |
536 parentTag = _CUSTOM_PARENT_TAG_MAP[tag]; | 536 parentTag = _CUSTOM_PARENT_TAG_MAP[tag]; |
537 } | 537 } |
538 } | 538 } |
539 // TODO(jacobr): make type dom.HTMLElement when dartium allows it. | 539 // TODO(jacobr): make type dom.HTMLElement when dartium allows it. |
540 var temp = dom.document.createElement(parentTag); | 540 var temp = dom.document.createElement(parentTag); |
541 temp.innerHTML = html; | 541 temp.innerHTML = html; |
542 | 542 |
543 var element; | |
Jacob
2012/02/14 02:31:06
var ==> Element
| |
543 if (temp.childElementCount == 1) { | 544 if (temp.childElementCount == 1) { |
544 return LevelDom.wrapElement(temp.firstElementChild); | 545 element = LevelDom.wrapElement(temp.firstElementChild); |
545 } else if (parentTag == 'html' && temp.childElementCount == 2) { | 546 } else if (parentTag == 'html' && temp.childElementCount == 2) { |
546 // Work around for edge case in WebKit and possibly other browsers where | 547 // Work around for edge case in WebKit and possibly other browsers where |
547 // both body and head elements are created even though the inner html | 548 // both body and head elements are created even though the inner html |
548 // only contains a head or body element. | 549 // only contains a head or body element. |
549 return LevelDom.wrapElement(temp.children.item(tag == 'head' ? 0 : 1)); | 550 element = LevelDom.wrapElement(temp.children.item(tag == 'head' ? 0 : 1)); |
550 } else { | 551 } else { |
551 throw new IllegalArgumentException('HTML had ${temp.childElementCount} ' + | 552 throw new IllegalArgumentException('HTML had ${temp.childElementCount} ' + |
552 'top level elements but 1 expected'); | 553 'top level elements but 1 expected'); |
553 } | 554 } |
555 element.remove(); | |
556 return element; | |
554 } | 557 } |
555 | 558 |
556 /** @domName Document.createElement */ | 559 /** @domName Document.createElement */ |
557 factory ElementWrappingImplementation.tag(String tag) { | 560 factory ElementWrappingImplementation.tag(String tag) { |
558 return LevelDom.wrapElement(dom.document.createElement(tag)); | 561 return LevelDom.wrapElement(dom.document.createElement(tag)); |
559 } | 562 } |
560 | 563 |
561 ElementWrappingImplementation._wrap(ptr) : super._wrap(ptr); | 564 ElementWrappingImplementation._wrap(ptr) : super._wrap(ptr); |
562 | 565 |
563 ElementAttributeMap _elementAttributeMap; | 566 ElementAttributeMap _elementAttributeMap; |
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
779 | 782 |
780 ElementEvents get on() { | 783 ElementEvents get on() { |
781 if (_on === null) { | 784 if (_on === null) { |
782 _on = new ElementEventsImplementation._wrap(_ptr); | 785 _on = new ElementEventsImplementation._wrap(_ptr); |
783 } | 786 } |
784 return _on; | 787 return _on; |
785 } | 788 } |
786 | 789 |
787 Element clone(bool deep) => super.clone(deep); | 790 Element clone(bool deep) => super.clone(deep); |
788 } | 791 } |
OLD | NEW |