在 iPhone 上的移动 Safari 中选择文本

发布于 2024-08-14 08:34:23 字数 501 浏览 13 评论 0原文

我试图让 iPhone 用户可以轻松地将一些文本复制到 mobile safari 中的剪贴板。就像通常的“触摸-按住-复制”一样。我希望用户复制一段特定的文本。我可以完全选择用于包装文本的 html 标记。我怎样才能让它变得简单,而不是随意?例如:

  • 是否有一种方法可以使用 javascript 在触地时“选择所有”文本?然后用户可以继续按住,然后选择复制?

  • 有没有办法调出“全选”选项?就像在文本框中键入内容一样吗?之后他们可以选择复制吗?

  • 如果没有 javascript 解决方案,我如何排列 html 来帮助 Safari 轻松选择正确的文本位?而不仅仅是一个单词或一个包装 div?

我已经尝试过 onFocus="this.select()" 对于各种元素,但似乎都不起作用。还尝试了onClick。

那些尝试将使用 ZeroClipboard 的网站移植到 iPhone 的人可能会有一些想法。

干杯

I'm trying to make it easy for an iphone user to copy some text to the clipboard in mobile safari. As in the usual "touch-hold-copy". There is a specific bit of text I want to a user to copy. I have full choice of the html markup in which to wrap the text. How can I make it easy, rather than abitrary? For instance:

  • Is there a way to "select all" the text upon touch-down using javascript? Then a user could just continue to touch-hold and then choose copy?

  • Is there a way to bring up the "select all" option? Like you can when typing in a text box? After which they can choose copy?

  • If there's no javascript solution, how can I arrange the html to help Safari select the right bit of text easily? As opposed to just a word, or a wrapping div?

I've tried onFocus="this.select()" for various elements, none seem to work. Also tried onClick.

Those who have tried to port a site that uses ZeroClipboard to the iPhone might have some ideas.

Cheers

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

我偏爱纯白色 2024-08-21 08:34:23

我使用了以下代码而不是 this.select(); 并且它有效!

this.selectionStart=0;
this.selectionEnd=this.value.length;

instead of this.select(); I used the following and it worked!

this.selectionStart=0;
this.selectionEnd=this.value.length;
小霸王臭丫头 2024-08-21 08:34:23

对我来说,神奇的酱汁是这三者的组合:

onFocus="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for big screens -->

onTouchEnd="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for small screens -->

onMouseUp="return false" <!-- to stop the jitters -->

The magic sauce for me was the combination of these three:

onFocus="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for big screens -->

onTouchEnd="this.selectionStart=0; this.selectionEnd=this.value.length;" <!-- for small screens -->

onMouseUp="return false" <!-- to stop the jitters -->
最近可好 2024-08-21 08:34:23

尝试使用 ontouchstart 而不是 onfocus。 Onfocus 火力大约为ontouchend后500ms,与onclick、onmousedown、onmouseup相同。请参阅 https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7 了解更多详细信息鼠标事件。

Try ontouchstart instead of onfocus. Onfocus fires approx. 500ms after ontouchend, same as onclick, onmousedown, and onmouseup. See https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/HandlingEvents/HandlingEvents.html#//apple_ref/doc/uid/TP40006511-SW7 for more details on mouse events.

野稚 2024-08-21 08:34:23

我遇到了同样的问题。 onfocus 事件是捕获的正确事件(如果您使用 iphone 键盘 [下一个]/[上一个] 按钮,则不会触发 ontouchstart。)如果您放置了一个alert();在 onfocus="" 处理程序中,您将看到弹出的警报框。问题是 this.select();我还没有找到这个问题的答案,但是当/如果我找到了,我会把它发布在这里。

I have run into the same problem. The onfocus event is the right one to trap (ontouchstart isn't triggered if you use the iphone keyboard [next]/[prev] buttons.) If you put an alert(); in your onfocus="" handler, you'll see the alert box pop up. The problem is this.select(); I still haven't found an answer to this, but when/if I do, I'll post it here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文