相关疑难解决方法(0)

如果在 android 上通过alert()处理,为什么`navigator.clipboard.writeText`不会将文本复制到剪贴板

当尝试在 Android 版 chrome 上复制一些文本时,navigator.clipboard.writeText()只要我之后不显示警报,它就可以工作。当我显示alert()时,它就不再起作用了。

例如,这按预期工作正常

function myFunction() {
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  navigator.clipboard.writeText(copyText.value);
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" value="Hello world" id="myInput" style="width:auto">
<button onclick="myFunction()">copy</button>
Run Code Online (Sandbox Code Playgroud)

然而这不起作用,它不会在控制台中抛出任何错误,并且在 PC 上的 Chrome 上运行良好,但不适用于 Android。

function myFunction() 
{
  var copyText = document.getElementById("myInput");
  copyText.select();
  copyText.setSelectionRange(0, 99999);
  navigator.clipboard.writeText(copyText.value);
  alert("Successfully copied the text")
}
Run Code Online (Sandbox Code Playgroud)
<input type="text" value="Hello world" id="myInput"  style="width:auto" >
<button onclick="myFunction()" >copy</button>
Run Code Online (Sandbox Code Playgroud)

任何人都知道发生了什么事?!谢谢

html javascript

32
推荐指数
2
解决办法
8万
查看次数

navigator.clipboard未定义

为什么navigator.clipboard总是undefined在以下代码段中?

var clipboard = navigator.clipboard;
if (clipboard == undefined) {
    console.log('clipboard is undefined');
} else {
    clipboard.writeText('stuff to write').then(function() {
        console.log('Copied to clipboard successfully!');
    }, function() {
        console.error('Unable to write to clipboard. :-(');
    });
}
Run Code Online (Sandbox Code Playgroud)

有关剪贴板API的更多信息,请访问此处.

Chrome版本:68.0.3440.106.

我确信这在某些方面有效,但不再是.这很令人困惑,因为这个表表明Clipboard API是在Chrome中实现的(已经有一段时间了),但是这个特定的API方法表明API的所有方法都不受支持?

clipboard google-chrome

10
推荐指数
5
解决办法
8057
查看次数

navigator.clipboard.writeText() 不适用于特定的 IOS 设备

我目前正在使用navigator.clipboard.writeText()将元素中的值复制到剪贴板,但是,它似乎适用于除Safari 中的 iPhone X 和 iPhone 6 Plus 之外的所有设备。

浏览器是最新的,根据 MDN,它们应该可以与这些版本的 safari 配合使用。该代码似乎适用于桌面、Android 和其他 IOS 设备(例如 iPhone 12)。

在 iPhone X 和 6 Plus 上,它会在控制台中的这两个设备上引发 Promise 错误,并且不会复制到剪贴板:

Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'navigator.clipboard.writeText')

完全错误

有没有人经历过类似的事情并看到/提出了解决方案?谢谢!

代码片段:

   const coupon = couponSelector.value;
    if (notMissing(coupon) && coupon !== '') {
      navigator.clipboard
        .writeText(coupon)
        .then(() =>
          LOGGER.debug({}, `${LOGGER_PREFIX}: Promise Successful.Copied coupon: ${coupon}`),
        )
        .catch((e) => LOGGER.error({ e }, `${LOGGER_PREFIX}: Promise Failed:`));
    }
Run Code Online (Sandbox Code Playgroud)

javascript clipboard copy promise ios

7
推荐指数
2
解决办法
8230
查看次数

标签 统计

clipboard ×2

javascript ×2

copy ×1

google-chrome ×1

html ×1

ios ×1

promise ×1