使用ajax时,在iOS中按住文本不会显示jQueryMobile对话框上的"复制"按钮

ale*_*ots 4 clipboard mobile jquery copy ios

我正在谈论其中一个弹出的对话框:http: //jquerymobile.com/test/docs/pages/page-dialogs.html

(移动设备的简称网址http://bit.ly/KhCGVD)

单击"打开对话框" - 在该对话框中,除非在链接中使用"data-ajax ="false"',否则在iOS中不能复制任何内容.(适用于Android)

放'-webkit-user-select:auto!important;' (或'text'而不是'auto')什么都不做.

添加javascript'document.documentElement.style.webkitTouchCallout ="auto";' 什么也没做.

我绝望,使这项工作,因为我已经建立了周围的复制将在iOS版以及由于Android上的工作假设整个事情,但直到它完成了iOS版没有测试:(.

任何帮助将不胜感激,谢谢.

编辑:在4.3.5 - 4.3.2 - iOS 5.1上测试 - 无法正常工作

Kan*_*hen 5

我担心我无法为你的问题提供简单的答案(比如在config或init中添加一些内容),但我希望当前的解决方案就足够了.


问题

问题在于该框架的代码.首先,我们有一个jquery.mobile.dialog.js文件,其中有一行:

    $el.bind( "vclick submit", function( event ) {
               // code
            })
Run Code Online (Sandbox Code Playgroud)

正如你可以看到,我们在这里添加绑定V单击$埃尔 -整个对话框的容器.

它自己的事件vclick是由jQuery Mobile在vmouse.js中生成的,在挖掘之后我设法检测到实际问题出现的地方:

    $( this ).bind( realType, dummyMouseHandler );
Run Code Online (Sandbox Code Playgroud)

这条线是在某些浏览器中使事件工作所必需的,即Opera Mini(如此行上方的注释文本中所述).


所以,这里有一个解决方案,打开文件jquery.mobile.vmouse.js并注释掉行

    $( this ).bind( realType, dummyMouseHandler );
Run Code Online (Sandbox Code Playgroud)

我在iPad上进行了测试,在这个小补丁之后可以使用复制功能.