Impl Basic support for object element

This commit is contained in:
Youngmin Yoo 2014-02-10 11:26:39 +09:00
parent ec4c31c214
commit 13f9a66632
6 changed files with 83 additions and 18 deletions

View file

@ -10,11 +10,12 @@ use dom::bindings::utils;
use dom::characterdata::CharacterData;
use dom::document::{AbstractDocument, DocumentTypeId};
use dom::documenttype::DocumentType;
use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId};
use dom::element::{Element, ElementTypeId, HTMLImageElementTypeId, HTMLIframeElementTypeId, HTMLObjectElementTypeId};
use dom::element::{HTMLAnchorElementTypeId, HTMLStyleElementTypeId};
use dom::eventtarget::{AbstractEventTarget, EventTarget, NodeTypeId};
use dom::htmliframeelement::HTMLIFrameElement;
use dom::htmlimageelement::HTMLImageElement;
use dom::htmlobjectelement::HTMLObjectElement;
use dom::nodelist::{NodeList};
use dom::text::Text;
use dom::processinginstruction::ProcessingInstruction;
@ -488,6 +489,18 @@ impl<'a> AbstractNode {
self.type_id() == ElementNodeTypeId(HTMLIframeElementTypeId)
}
#[inline]
pub fn is_object_element(self) -> bool {
self.type_id() == ElementNodeTypeId(HTMLObjectElementTypeId)
}
pub fn with_mut_object_element<R>(self, f: |&mut HTMLObjectElement| -> R) -> R {
if !self.is_object_element() {
fail!(~"node is not an image element");
}
self.transmute_mut(f)
}
pub fn with_mut_iframe_element<R>(self, f: |&mut HTMLIFrameElement| -> R) -> R {
if !self.is_iframe_element() {
fail!(~"node is not an iframe element");