Element: setAttributeNS() メソッド
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
警告: このメソッドは、属性に応じて、HTML、スクリプト、またはスクリプトの URL として構文解析される属性値を受け取る可能性があります。 この API はインジェクションシンクと呼ばれ、元の値が攻撃者から提供されたものである場合、クロスサイトスクリプティング (XSS) 攻撃の攻撃経路となる可能性があります。
このリスクを軽減するには、常に適切な信頼型オブジェクト(TrustedHTML、TrustedScript、TrustedScriptURL のいずれか)を常に渡すことで、このリスクを軽減できます。また、信頼型の強制適用を行うことも有効です。
詳しくは Element.setAttribute() のセキュリティ上の注意事項を参照してください。
setAttributeNS() は Element インターフェイスのメソッドで、指定された名前空間と名前を持つ新しい属性を追加したり、属性の値を変更したりします。
HTML 文書を扱っていて、リクエストされた属性を特定の名前空間の一部として指定する必要がない場合は、代わりに setAttribute() メソッドが使用できます。
構文
setAttributeNS(namespaceURI, qualifiedName, value)
引数
namespaceURI-
設定する属性の名前空間を指定する文字列、または空文字列です。
qualifiedName-
修飾名によって属性を識別する文字列。この修飾名は
prefix:localNameまたはlocalNameの形をとります。各部分の定義は以下の通りです。 value-
属性に割り当てる値を含む信頼型または文字列です。
信頼型が強制されている場合、以下の属性に対しては信頼型のインスタンスを渡す必要があります。
onclickやonloadなどのイベントハンドラーのコンテンツ属性には、TrustedScriptが要求されます。HTMLIFrameElement.srcdocには、TrustedHTMLのインスタンスが要求されます。HTMLScriptElement.srcには、TrustedScriptURLのインスタンスが要求されます。SVGScriptElement.hrefには、TrustedScriptURLのインスタンスが要求されます。
その他の属性については、信頼型が強制されないため、文字列や任意の信頼型を渡すことができます。
返値
なし (undefined)。
例外
NamespaceErrorDOMException-
namespaceURIの値が以下の場合の発生します。- 有効な名前空間 URI ではない。
prefixに値があるときに空文字列を設定した。prefixがxmlまたはxmlnsに設定された場合に、それぞれhttp://www.w3.org/XML/1998/namespaceまたはhttp://www.w3.org/2000/xmlns/ではない場合。
InvalidCharacterErrorDOMException-
prefixまたはlocalNameのいずれかが無効な場合、例外が発生します。prefixは 1 文字以上でなければならず、ASCII のホワイトスペース、NULL、/、>(それぞれ U+0000、U+002F、U+003E)が含まれてはなりません。localNameは 1 文字以上でなければならず、ASCII のホワイトスペース、NULL、/、=、>(それぞれ U+0000、U+002F、U+003D、U+003E)が含まれてはなりません。
メモ: 仕様の以前のバージョンでは、
qualifiedNameが有効な XML 名 であることが要求されるなど、より厳しい制約が設けられていました。 TypeError-
valueに、信頼型オブジェクトではなく文字列が渡された場合(それらを要求される属性について)、 信頼型が CSP によって強制されている場合で、かつデフォルトのポリシーが定義されていない場合に発生します。
例
>基本的な使い方
let d = document.getElementById("d1");
d.setAttributeNS(
"http://www.mozilla.org/ns/specialspace",
"spec:align",
"center",
);
信頼型
setAttribute() の安全はでない属性の設定の例では、setAttributeNS() とともに 信頼型を使用する方法が示されています。
仕様書
| 仕様書 |
|---|
| DOM> # ref-for-dom-element-setattributens①> |