クリップボードの値を読み出す
このスニペットを使うと、前のステップで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 ではこのイベントがまだ実装されていません。