GVKun编程网logo

Javascript clipboard.readText() 在 IOS Safari 中不起作用?(safari里的javascript)

3

对于Javascriptclipboard.readText()在IOSSafari中不起作用?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解safari里的javascript,并且为您

对于Javascript clipboard.readText() 在 IOS Safari 中不起作用?感兴趣的读者,本文将提供您所需要的所有信息,我们将详细讲解safari里的javascript,并且为您提供关于@-webkit-keyframe 动画“内容”在 Safari 和 iOS 中不起作用、Clipboard API 在点击事件中与 Axios 结合使用 Safari 中的结果 1我对结果 1 的看法Safari 中的结果 2我对结果 2 的看法Safari 中的结果 3我对结果 3 的看法、Clipboard.js v1.5.15 发布,JavaScript 复制粘贴库、CSS背景位置在Mobile Safari(iPhone/iPad)中不起作用的宝贵知识。

本文目录一览:

Javascript clipboard.readText() 在 IOS Safari 中不起作用?(safari里的javascript)

Javascript clipboard.readText() 在 IOS Safari 中不起作用?(safari里的javascript)

如何解决Javascript clipboard.readText() 在 IOS Safari 中不起作用?

我有几行:

  1. $(document).ready(function(){
  2. $(window).on(''focus'',function () {
  3. navigator.clipboard.readText().then(q => {
  4. alert(q);
  5. }).catch(err => {
  6. console.error(''Failed to read clipboard contents: '',err);
  7. });
  8. });
  9. });

在 Android 浏览器上运行良好。但是在 IOS Safari 中,没有任何反应。 请帮忙!

解决方法

对 webkit 进行了一些更改:https://webkit.org/blog/10247/new-webkit-features-in-safari-13-1/

答案已经在这里完成: Javascript / Clipboard API / Safari iOS / NotAllowedError Message

@-webkit-keyframe 动画“内容”在 Safari 和 iOS 中不起作用

@-webkit-keyframe 动画“内容”在 Safari 和 iOS 中不起作用

如何解决@-webkit-keyframe 动画“内容”在 Safari 和 iOS 中不起作用

问题 无法让 CSS @-webkit-keyframe 动画与内容标签一起工作。以下代码在 Chrome 和 Firefox 上运行良好,但 Safari 仍不显示“STRING1”。 我已经尝试了论坛中的所有内容,但仍然无效。 有人能帮我吗?非常感谢。

html:

  1. <h1>TEST:<span></span></h1>

CSS:

  1. @-webkit-keyframes textchange {
  2. 0% {content: ''STRING1'';}
  3. 30% {content: ''SRING2'';}
  4. 60% {content: ''STRING3'';}
  5. 100% {content: ''STRING1'';}
  6. }
  7. @-moz-keyframes textchange {
  8. 0% {content: ''STRING1'';}
  9. 30% {content: ''SRING2'';}
  10. 60% {content: ''STRING3'';}
  11. 100% {content: ''STRING1'';}
  12. }
  13. @-o-keyframes textchange {
  14. 0% {content: ''STRING1'';}
  15. 30% {content: ''SRING2'';}
  16. 60% {content: ''STRING3'';}
  17. 100% {content: ''STRING1'';}
  18. }
  19. @keyframes textchange {
  20. 0% {content: ''STRING1'';}
  21. 30% {content: ''SRING2'';}
  22. 60% {content: ''STRING3'';}
  23. 100% {content: ''STRING1'';}
  24. }
  25. h1 span::before{
  26. content:''STRING1'';
  27. -webkit-animation-name: textchange;
  28. -webkit-animation-duration: 6s;
  29. -webkit-animation-iteration-count: infinite;
  30. -webkit-animation-timing-function: linear;
  31. -webkit-animation-play-state: running;
  32. -webkit-animation-direction: normal;
  33. -webkit-animation-delay:0.01s;
  34. -webkit-animation-fill-mode: forwards;
  35. -o-animation: textchange 6s linear 0.01s infinite;
  36. -ms-animation: textchange 6s linear 0.01s infinite;
  37. -moz-animation: textchange 6s linear 0.01s infinite;
  38. animation: textchange 6s linear 0.01s infinite;
  39. }

解决方法

根据这个线程:css animation on "content:" doesn''t work on Safari and Firefox

除了在桌面版 Chrome 中,无法为伪元素的内容属性设置动画。所以你不能为IOS实现这个抛出的css

你必须使用 Javascript 我会使用一个带有 if 语句的循环来检查当前的 inner.html 值,以在一段时间后更改值文本(setTimeOut 或 setInterval)

Clipboard API 在点击事件中与 Axios 结合使用 Safari 中的结果 1我对结果 1 的看法Safari 中的结果 2我对结果 2 的看法Safari 中的结果 3我对结果 3 的看法

Clipboard API 在点击事件中与 Axios 结合使用 Safari 中的结果 1我对结果 1 的看法Safari 中的结果 2我对结果 2 的看法Safari 中的结果 3我对结果 3 的看法

如何解决Clipboard API 在点击事件中与 Axios 结合使用 Safari 中的结果 1我对结果 1 的看法Safari 中的结果 2我对结果 2 的看法Safari 中的结果 3我对结果 3 的看法

TL;DR

是否可以让剪贴板 API 从 Safari 中的 Axios get 请求的结果中写入文本,即使 writeText() 是用户事件的直接结果?


长版

我有一个异步按钮单击事件,在该单击事件中,我使用 Axios 获取另一个页面的 HTML。我想获取该字符串并使用剪贴板 API 将其保存到剪贴板。

这在 Chrome 和 Firefox 中有效,但在 Safari 中存在一些问题,我将在下面展示。

测试:

  • Chrome 88.0.4324.192
  • Firefox 78.7.1
  • Safari 14.0.3

我能找到的与此类事情相关的最接近的 SO 问题是 Javascript / Clipboard API / Safari iOS / NotAllowedError Message,但我觉得我的 Clipboard API 调用是直接在用户事件中调用的。


尝试 1 在 Safari 中开始工作

copyButton.addEventListener(''click'',async (event) => {
  try {
    const {data: html} = await axios.get(''https://website-to-copy.com'');
    await navigator.clipboard.writeText(html);
    console.log(''copy was a success'');
  } catch (error) {
    console.log(error);
  }
});

Safari 中的结果 1

  • 请求成功
  • 无法写入剪贴板
    • NotAllowedError:当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。

我对结果 1 的看法

当时我认为这会奏效。 writeText() 调用是用户事件的直接结果,我只是传入一个字符串...即使该字符串是 Axios get 请求的结果。当它不起作用时,我想一定是 get 请求放弃了权限。


尝试 2 在 Safari 中开始工作

copyButton.addEventListener(''click'',async (event) => {
  try {
    const {data: html} = await axios.get(''https://website-to-copy.com'');
    // throw in a random string thinking maybe something
    // in the get request is throwing Clipboard API off
    await navigator.clipboard.writeText(''some random text to copy'');
    console.log(''copy was a success'');
  } catch (error) {
    console.log(error);
  }
});

Safari 中的结果 2

  • 请求成功
  • 无法写入剪贴板
    • NotAllowedError:当前上下文中用户代理或平台不允许该请求,可能是因为用户拒绝了权限。

我对结果 2 的看法

当我的随机文本没有复制时,我真的很惊讶。当尝试 #1 失败时,我决定保留 get 请求,但只提供 writeText() 一些随机文本,无论如何与 get 请求无关,只是为了看看它是否会复制。显然 get 请求仍然影响 Clipboard API。


尝试 3 在 Safari 中开始工作

copyButton.addEventListener(''click'',async (event) => {
  try {
    // remove get request and see if i can get anything to
    // copy to clipboard
    //const {data: html} = await axios.get(''https://website-to-copy.com'');
    await navigator.clipboard.writeText(''some random text to copy'');
    console.log(''copy was a success'');
  } catch (error) {
    console.log(error);
  }
});

Safari 中的结果 3

  • 文本成功复制到剪贴板

我对结果 3 的看法

我很高兴我可以在 Safari 中使用剪贴板 API 成功复制文本。但是我真的很想复制 get 请求的结果。

Clipboard.js v1.5.15 发布,JavaScript 复制粘贴库

Clipboard.js v1.5.15 发布,JavaScript 复制粘贴库

Clipboard.js v1.5.15 发布了,Clipboard.js 实现了纯 JavaScript 无 Flash的浏览器内容复制到系统剪贴板的功能。可以在浏览器和 Node 环境中使用。

浏览器支持:

该库依赖于 Selection 和 execCommand API。 前者支持所有浏览器,后者支持以下浏览器:

更新内容:

  • 移除 Babel loose mode

下载地址:

  • Source code (zip)

  • Source code (tar.gz)

CSS背景位置在Mobile Safari(iPhone/iPad)中不起作用

CSS背景位置在Mobile Safari(iPhone/iPad)中不起作用

我在移动Safari中有一个背景位置的问题。它在其他桌面浏览器上工作正常,但不能在iPhone或iPad上运行。
body {
 background-color: #000000;
 background-image: url('images/background_top.png');
 background-repeat: no-repeat;
 background-position: center top;
 overflow: auto;
 padding: 0px;
 margin: 0px;
 font-family: "Arial";
}

#header {
 width: 1030px;
 height: 215px;
 margin-left: auto;
 margin-right: auto;
 margin-top: 85px;
 background-image: url('images/header.png');
}

#main-content {
 width: 1000px;
 height: auto;
 margin-left: auto;
 margin-right: auto;
 padding-left: 15px;
 padding-right: 15px;
 padding-top: 15px;
 padding-bottom: 15px;
 background-image: url('images/content_bg.png');
 background-repeat: repeat-y;
}

#footer {
 width: 100%;
 height: 343px;
 background-image: url('images/background_bottom.png');
 background-position: center;
 background-repeat: no-repeat;
}

“background_top.png”和“background_bottom.png”都向左移动太远。我已经google了,据我所知,在移动Safari中支持背景位置IS。我也尝试过各种关键字(“顶”,“中心”等),px和%的组合。有什么想法吗?

谢谢!

更新:这是.html文件中的标记,显示设计&布局在其他浏览器中好((我也更新了上面的css)

<html lang="en">
 <head>
  <title>Title</title>
  <link rel="Stylesheet" type="text/css" href="styles.css" />
 </head>
 <body>
  <div id="header"></div>
  <div id="main-content"></div>
  <div id="footer"></div>
 </body>
</html>

两个背景图像都非常宽(〜2000像素),以便在任何尺寸的浏览器上占用空间。

附:我知道可能有一些更有效的CSS快捷方式可以使用,但是现在我喜欢将代码组织起来,就像我有可见性一样。

解决方法

当放置在正文标签中时,iPhone / Webkit浏览器不能将背景图像对齐。唯一的办法是从身体标签中删除背景图片,并使用额外的DIV作为包装器。
#wrapper {
 background-color: #000000;
 background-image: url('images/background_top.png');
 background-repeat: no-repeat;
 background-position: center top;
 overflow: auto;
}


<html lang="en">
 <head>
  <title>Title</title>
  <link rel="Stylesheet" type="text/css" href="styles.css" />
 </head>
 <body>
  <div id="wrapper">
    <div id="header"></div>
    <div id="main-content"></div>
    <div id="footer"></div>
  </div>
 </body>
</html>

关于Javascript clipboard.readText() 在 IOS Safari 中不起作用?safari里的javascript的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于@-webkit-keyframe 动画“内容”在 Safari 和 iOS 中不起作用、Clipboard API 在点击事件中与 Axios 结合使用 Safari 中的结果 1我对结果 1 的看法Safari 中的结果 2我对结果 2 的看法Safari 中的结果 3我对结果 3 的看法、Clipboard.js v1.5.15 发布,JavaScript 复制粘贴库、CSS背景位置在Mobile Safari(iPhone/iPad)中不起作用的相关知识,请在本站寻找。

本文标签: