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

时间:2009-12-14 07:18:13

标签: javascript iphone copy mobile-safari zeroclipboard

我正在尝试让iphone用户轻松将一些文本复制到移动版Safari中的剪贴板中。与通常的“触摸 - 复制”一样。我希望用户复制一段特定的文本。我可以完全选择用于包装文本的html标记。我怎样才能轻松而不是抄袭?例如:

  • 有没有办法在使用javascript触摸时“全选”文字?然后用户可以继续触摸保持,然后选择复制?

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

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

我已经尝试过onFocus =“this.select()”用于各种元素,似乎都没有用。也试过onClick。

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

干杯

4 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分: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 -->

答案 2 :(得分:4)

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

答案 3 :(得分:2)

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