我正在尝试让iphone用户轻松将一些文本复制到移动版Safari中的剪贴板中。与通常的“触摸 - 复制”一样。我希望用户复制一段特定的文本。我可以完全选择用于包装文本的html标记。我怎样才能轻松而不是抄袭?例如:
有没有办法在使用javascript触摸时“全选”文字?然后用户可以继续触摸保持,然后选择复制?
有没有办法提出“全选”选项?就像在文本框中输入一样?之后他们可以选择复制吗?
如果没有javascript解决方案,我如何安排html以帮助Safari轻松选择正确的文本位?而不是只是一个单词,还是包装div?
我已经尝试过onFocus =“this.select()”用于各种元素,似乎都没有用。也试过onClick。
那些试图将使用ZeroClipboard的网站移植到iPhone上的人可能会有一些想法。
干杯
答案 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();我还没有找到答案,但是如果我这样做,我会在这里发布。