クリップボードの値を読み出す
このスニペットを使うと、前のステップでdocument.execCommand("copy")
を使ってクリップボードにコピーされた値を読みだすことができます。
注: このスニペットはコピーされたデータがテキストであると仮定しています。
2 つのペアになった JS ステップをシナリオに追加する必要があります。
- データを
localStorage
に保存するリスナーを、copy
イベントのイベントリスナーに追加するステップ localStorage
からデータを読み出すステップ
ステップ 1 はクリックするステップの前に挿入する必要があります。そうすることで、クリックするステップの後でデータを読み出すことができるようになります。
// Step 1
document.addEventListener("copy", function (event) {
var active = document.activeElement;
if (
active instanceof HTMLInputElement ||
active instanceof HTMLTextAreaElement
) {
var data = active.value.substring(
active.selectionStart,
active.selectionEnd
);
localStorage.setItem("clipboard", data);
}
});
// Step 2
return localStorage.getItem("clipboard");
技術的制約により、Autify ではdocument.execCommand("copy")
が iOS Safari の環境上でのみうまく発動しません。そのため、このスニペット(および他の回避策)は iOS Safari 上では機能しません。(2022 年 3 月現在)
もしサイトがnavigation.clipboard.writeText()
API を使ってクリップボードにコピーしている場合、このアプローチはうまく動きません。この API はclipboardchange
というイベントを発行することになっているのですが、2022 年 3 月現在 Chromium ではこのイベントがまだ実装されていません。