defineSetter method
Obsolete. Do not use.
Allows developers to create new or override existing Document Object Model (DOM) properties and functions using functionality implemented by a custom Microsoft JScript function. The custom function is used to set the value of a property or a function.
![]() |
Syntax
HRESULT retVal = object.defineSetter(propname, pdispHandler);
Parameters
- propname [in]
-
Type: BSTR
Name of the property or function to be modified.
- pdispHandler [in]
-
Type: IDispatch
Name of the JScript function that provides the new functionality.
Return value
Type: HRESULT
If this method succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.
Remarks
The name of the method is preceded and followed by two underscore characters (__).
The IHTMLDOMConstructor::DefineSetter method can be used to override DOM properties, DOM functions, and expandos. You cannot use IHTMLDOMConstructor::DefineSetter to override JScript objects or functions.
When defined for built-in properties or functions, IHTMLDOMConstructor::DefineSetter overrides the built-in property or function. When referring to functions that support arguments, include required arguments in the call to IHTMLDOMConstructor::DefineSetter.
Use the delete operator to delete custom properties or functions created using IHTMLDOMConstructor::DefineSetter and to restore overridden properties or functions to their original functionality.
To cache (save) a function to be overriden with IHTMLDOMConstructor::DefineSetter, assign the function to a variable before overriding it. To invoke behavior cached to a variable, use the apply method or the call method.
The IHTMLDOMConstructor::DefineSetter is only supported in IE8 Standards mode. For more information, see Defining Document Compatibility.
Examples
This example shows how to create a write only property, a property that cannot be read.
try { document.__defineSetter__("writeOnlyProp", function(value) { alert("write only: " + value); } } catch(e) { alert( "setter not supported: " + e.message); } // Displays "to-write" in IE8 and "undefined" // in earlier versions. document.writeOnlyProp = "to-write"; alert( document.readOnlyProp );
See also
- style
- rule
- currentStyle
- attribute
- TextNode
- attributes
- IHTMLDOMConstructorCollection::StaticNodeList
- children
- defaults
- IHTMLDOMConstructorCollection::HTMLGenericElement
- styleSheet
- IHTMLDOMConstructorCollection::HTMLLinkElement
- IHTMLDOMConstructorCollection::HTMLFormElement
- IHTMLDOMConstructorCollection::HTMLTextElement
- img
- XMLHttpRequest
- body
- font
- a
- label
- ul
- ol
- li
- blockQuote
- div
- dd
- dt
- br
- dl
- hr
- p
- elements
- hn
- select
- option
- input
- textArea
- button
- marquee
- html
- head
- title
- meta
- base
- isIndex
- nextID
- baseFont
- event
- screen
- window
- DocumentCompatibleInfo
- documentCompatibleInfoCollection
- document
- embed
- areas
- map
- area
- caption
- comment
- ins
- del
- span
- table
- col
- tBody
- tFoot
- tHead
- tr
- td
- script
- noScript
- object
- param
- frame
- iframe
- fieldSet
- legend
- frameSet
- bgSound
- style
- XDomainRequest
- Storage
- Reference
- IHTMLDOMConstructor::DefineGetter
- IHTMLDOMConstructor::LookupGetter
- IHTMLDOMConstructor::LookupSetter
