SalesforceにはLWC(Lightning Web コンポーネント)というWeb標準でSalesforce開発を行えるプログラミングモデルがあります。
要するにHTMLとJavaScriptで開発ができます。
しかし、LWCはLightning Locker(旧Locker Service)上で動作しているため、DOM関連等において通常のブラウザと違う制約が働いています。
先日、現在非推奨となっているexecCommandメソッドを使用している機能を修正する案件がありました。
公式で推奨されているクリップボードAPIを利用するように修正しようとしたところ、LWCでは動作しませんでした。
(Auraでもダメでした)
調べたところ、Lightning Lockerの制約により、LWCに対応しているクリップボードAPIがほんの一部しかないというものでした。
Lightning Lockerの無効化はしたくなかったので、クリップボードAPIを利用するところだけwindow.openで新規ページを開いて実行するという力技で一旦実装しました。
もし、スマートなやり方がわかる人がいたら教えてほしいです。