Section 4.5.1描述了SVGElement接口 - SVG对象的“基类”。它说:
interface SVGElement : Element {
attribute DOMString id setraises(DOMException);
attribute DOMString xmlbase setraises(DOMException);
readonly attribute SVGSVGElement ownerSVGElement;
readonly attribute SVGElement viewportElement;
};
属性:
id(DOMString)
给定元素上'id'属性的值,如果'id'不存在则为空字符串。 设置
的例外情况DOMException
,代码NO_MODIFICATION_ALLOWED_ERR
尝试更改只读属性的值时触发。 xmlbase(DOMString)
对应于给定元素的属性'xml:base'。
设置
的例外情况DOMException
,代码NO_MODIFICATION_ALLOWED_ERR
尝试更改只读属性的值时触发。 ownerSVGElement(readonly SVGSVGElement)
最近的祖先'svg'元素。如果给定元素是最外面的svg元素,则为空。
viewportElement(readonly SVGElement)
建立当前视口的元素。通常,最近的祖先'svg'元素。如果给定元素是最外面的svg元素,则为空。
所以这些属性都不可写。如果你试图写信给他们,为什么他们中的两个会引发异常?另外两个不会引发异常吗? 'readonly'和'setraises'有什么区别?
答案 0 :(得分:0)
setraises
并不意味着该属性不可写。它只是意味着设置它可能引发一个DomException。在SVG DOM中,所有非readonly
的属性都以这种方式注释。
对于SVGElement.id,我不知道设置id
会引发异常的任何情况。也许,在某些SVG实现中,很少有情况下DOM处于不允许更改id
的状态。但我认为你不必担心这一点。
至于readonly
属性。它取决于实现是否只是忽略了设置它的尝试,或者抛出异常。