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

18

我正在尝试让iPhone用户在移动Safari中轻松复制一些文本,就像通常的“长按复制”一样。我想要用户复制特定的文本。我可以完全选择用于包装文本的HTML标记。如何使其易于操作而非任意呢?例如:

  • 是否有一种方法可以使用JavaScript在触摸时“全选”文本?然后用户只需继续长按,然后选择复制即可?

  • 是否有一种方法可以弹出“全选”选项?就像在文本框中输入时那样?之后他们可以选择复制?

  • 如果没有JavaScript解决方案,我该如何安排HTML以帮助Safari轻松选择正确的文本?与仅单词或包装div不同?

我已经尝试了各种元素的onFocus =“this.select()”,但似乎都不起作用。也尝试过onClick。

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

干杯


我正在尝试在我的iPhone应用程序中实现相同的功能。任何对该功能有疑问的人都可以在iPhone应用程序“Opera”中查看它。 - Anil Sivadas
在iOS引入复制/粘贴功能之前,有一个名为pastebud的JavaScript书签。以下是该JavaScript的YouTube视频演示:http://www.youtube.com/watch?v=_ybh573ZASc自从苹果在iOS中引入复制/粘贴功能以来,网站http://www.pastebud.com/已经无法使用。任何拥有该JavaScript脚本的人都可以帮助我们。 - Anil Sivadas
4个回答

9

我使用以下代码,而不是 this.select();,它可以正常工作!

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

7

对我来说,魔法的组合是这三个:

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 -->

这对我来说可行,使用onClick而不是onFocus/onTouchEnd。onMouseUp很重要。 - netzaffin

4

2

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


我也遇到过同样的问题。焦点事件(focus)是正确的事件,可以捕获它,这一点毫无疑问。我认为对于这样一个小的可用性改进,我可以把它归因于移动版Safari的问题,让他们来修复它。 - SimplGy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接