diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index 90f4c60abc3..10e1a42e973 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -4,15 +4,17 @@ use dom::bindings::codegen::Bindings::HTMLScriptElementBinding; use dom::bindings::codegen::Bindings::HTMLScriptElementBinding::HTMLScriptElementMethods; +use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::HTMLScriptElementDerived; -use dom::bindings::codegen::InheritTypes::ElementCast; +use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast, TextCast}; use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::utils::{Reflectable, Reflector}; use dom::document::Document; use dom::element::{HTMLScriptElementTypeId, Element, AttributeHandlers}; use dom::eventtarget::{EventTarget, NodeTargetTypeId}; use dom::htmlelement::HTMLElement; -use dom::node::{Node, ElementNodeTypeId}; +use dom::node::{Node, NodeHelpers, ElementNodeTypeId}; +use dom::text::Text; use servo_util::str::DOMString; #[deriving(Encodable)] @@ -44,6 +46,25 @@ impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> { let element: &JSRef = ElementCast::from_ref(self); element.get_url_attribute("src") } + + // http://www.whatwg.org/html/#dom-script-text + fn Text(&self) -> DOMString { + let node: &JSRef = NodeCast::from_ref(self); + let mut content = String::new(); + for child in node.children() { + if child.is_text() { + let text: &JSRef = TextCast::to_ref(&child).unwrap(); + content.push_str(text.deref().characterdata.data.deref().borrow().as_slice()); + } + } + content + } + + // http://www.whatwg.org/html/#dom-script-text + fn SetText(&self, value: DOMString) { + let node: &JSRef = NodeCast::from_ref(self); + node.SetTextContent(Some(value)) + } } impl Reflectable for HTMLScriptElement { diff --git a/src/components/script/dom/webidls/HTMLScriptElement.webidl b/src/components/script/dom/webidls/HTMLScriptElement.webidl index bfa4ddf1d6c..260850fa78c 100644 --- a/src/components/script/dom/webidls/HTMLScriptElement.webidl +++ b/src/components/script/dom/webidls/HTMLScriptElement.webidl @@ -12,7 +12,8 @@ interface HTMLScriptElement : HTMLElement { // attribute boolean async; // attribute boolean defer; // attribute DOMString crossOrigin; - // attribute DOMString text; + [Pure] + attribute DOMString text; // also has obsolete members };