JavaScript の厳格モードの適用
DOM のアクセスコンテインメント
セキュアなラッパー
Lightning Locker による eval() 関数の制限
許可される MIME タイプ
サードパーティ Web コンポーネントと Lightning Locker
Salesforce のグローバル変数
サポートされていないブラウザ
子コンポーネントに渡される配列
Lightning Locker ツール
組織の Locker API バージョンの選択
セキュリティ上の理由で、Lightning Locker は、オブジェクトを非表示にしたり、オブジェクトのセキュアなバージョンでオブジェクトをラップしたりして、グローバルオブジェクトの使用を制限します。たとえば、window のセキュアなバージョンは SecureWindow です。Locker は window へのコールを捕捉し、代わりに SecureWindow を使用します。
SecureWindow、SecureDocument、SecureElement ラッパーでサポートされる API を確認するには、Locker API ビューアツールを使用します。
SecureWindow使用可能: Lightning Web コンポーネントおよび Aura コンポーネント
window オブジェクトのセキュアなラッパー。DOM ドキュメントを含むウィンドウを表します。
Lightning Web コンポーネントと Aura コンポーネントが同じ名前空間に属している場合、これらのコンポーネントは、同じ SecureWindow インスタンスを共有します。
SecureDocument使用可能: Lightning Web コンポーネントおよび Aura コンポーネント
document オブジェクトのセキュアなラッパー。HTML ドキュメントまたはページのルートノードを表します。document オブジェクトは、ページのコンテンツ、つまり DOM ツリーへのエントリポイントです。
Lightning Web コンポーネントと Aura コンポーネントが同じ名前空間に属している場合、これらのコンポーネントは、同じ SecureDocument インスタンスを共有します。
SecureObject使用可能: Lightning Web コンポーネントおよび Aura コンポーネント
Lightning Locker によってラップされるオブジェクトのセキュアなラッパー。通常、SecureObject が表示されたときは、基盤となるオブジェクトにアクセスすることができず、そのプロパティは使用できないことを意味します。
SecureElement使用可能: Lightning Web コンポーネントおよび Aura コンポーネント
element オブジェクトのセキュアなラッパー。さまざまな HTML 要素を表します。
Lightning Web コンポーネントと Aura コンポーネントが同じ名前空間に属している場合、これらのコンポーネントは、同じ SecureElement インスタンスを共有します。
Lightning Web コンポーネントでは、SecureLightningElement ラッパーが追加で使用されます。
SecureLightningElement使用可能: Lightning Web コンポーネント
LightningElement 基本クラスのセキュアなラッパー。Lightning Web コンポーネントは LightningElement 基本クラスを拡張し、実行時に Locker はこのクラスを SecureLightningElement に切り替えます。Lightning Web コンポーネントを作成するときは、SecureLightningElement を直接拡張しないでください。
次の API はサポートされていません。
Element.attachShadow()Element.shadowRoot — 代わりに this.template を使用してください。Element.slotSecureTemplate使用可能: Lightning Web コンポーネント
template オブジェクトのセキュアなラッパー。shadowRoot ノードを表します。
次の API はサポートされていません。
Node.localNameNode.namespaceURINode.nodeValueNode.nextSiblingNode.previousSiblingNode.parentElementNode.parentNodeNode.prefixNonDocumentTypeChildNode.nextElementSiblingNonDocumentTypeChildNode.previousElementSiblingDocumentOrShadowRoot.getSelection()DocumentOrShadowRoot.styleSheetsDocumentOrShadowRoot.pointerLockElementDocumentFragment.getElementById()ParentNode.appendParentNode.prependconstructorEventTarget.dispatchEventpictureInPictureElementLightning Web セキュリティではラッパーを使用しません。JavaScript Sandbox で API ディストーションを使用して、安全でない動作を可能にする API を個々に選択して変更します。
Note
The Japanese Summer '24 guide is now live