モバイル版scrapboxでコードブロックのコピーに失敗する
コピーに失敗する詳しい条件は把握できていないのですが(開発コンソールを見ればわかるかも)、このような現象が発生するということで報告しておきます
私の手元のスマホでも、時々失敗します。環境は同じく、Android 11、Chrome 96です。
環境
Android 11
Chrome for Android 96
失敗するときとしないときがあります
条件は不明です
対策
scrapboxのコードを読んでみたところ、読み取りはClipboard APIを使っていましたが、書き込みはdocument.execCommand("copy")しか使っていないようです document.execCommand()は非推奨なので、navigator.clipboard.writeText()に置き換えて欲しいです なるほど。そろそろ置き換えても良さそうですねshokai.icon
対応ありがとうございます!!takker.icon
User側での応急処置
以下のコードをUserScriptに記入するとコピーが安定します
code:js
const func = Document.prototype.execCommand;
Document.prototype.execCommand = function (name) {
if (name !== "copy") return func.call(this, name);
const text = this.querySelector("textareareadonly")?.value; // 空文字のときもコピーしない
if (!text) return true;
navigator.clipboard.writeText(text)
.catch((e) => alert(Faild to copy.\nMessage: ${e.message}));
return true;
};