- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 navigator.clipboard.writeText()
将元素中的值复制到剪贴板,但是,它似乎适用于除 iPhone X 和iPhone 6 Plus 在 Safari 中。
浏览器是最新的,根据 MDN,它们应该可以与这些版本的 safari 一起使用。该代码似乎适用于桌面、Android 和其他 IOS 设备(例如 iPhone 12)。
在 iPhone X 和 6 Plus 上,它会在控制台中的这两种设备上抛出一个 Promise 错误,并且也不会复制到剪贴板:
未处理的 Promise 拒绝:TypeError:undefined 不是对象(评估“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:`));
}
最佳答案
参见 my answer on the post linked in Damian Demasi's answer , 为方便起见转载于此……
有security limitations on this API在(移动)Safari 中,其中之一是它必须在受 https
保护的站点上执行,因此不会在 localhost
上运行,例如:
- The API is limited to secure contexts, which means that
navigator.clipboard
is not present forhttp://
websites.- The request to write to the clipboard must be triggered during a user gesture. A call to
clipboard.write
orclipboard.writeText
outside the scope of a user gesture (such as"click"
or"touch"
event handlers) will result in the immediate rejection of the promise returned by the API call.[…]
关于javascript - navigator.clipboard.writeText() 不适用于特定的 IOS 设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65582701/
我的应用程序有一个类似 shell 的控制台,它在每个命令后都会提示“>>>”。问题是每次我的 shell WriteText(">>> ") 时,它还会附加一个新行。用户可以退格到正确的行,但这看起
我目前正在使用 navigator.clipboard.writeText() 将元素中的值复制到剪贴板,但是,它似乎适用于除 iPhone X 和iPhone 6 Plus 在 Safari 中。
在查看了 Jest 问题和 SO answers 后,我尝试了以下 4 个选项,但我遇到了 TypeScript 错误或运行时错误。我真的很想让选项 1 (spyOn) 工作。 // ------ o
我正在使用以下函数将一些文本放入我的剪贴板: navigator.clipboard.writeText('Text to be copied').then(function() {
我是 Python 新手,所以我也是 wxPython 新手。我只是想知道这些 wx.TextCtrl 函数之间是否有任何区别。这个迷你代码显示了三倍相同的输出。如果没有差异,这些功能是否有历史原因?
import re from bs4 import BeautifulSoup example = """writeText('Sunday, January 26 at 1pmTemperatur
尝试使用 navigator.clipboard.writeText() 在 chrome for android 上复制一些文本时只要我之后不显示警报,它就可以工作。当我显示 alert() 时,它
我是一名优秀的程序员,十分优秀!