Javascript Jquery移动数据rel=";“对话”;不适用于iphone或ipad

Javascript Jquery移动数据rel=";“对话”;不适用于iphone或ipad,javascript,jquery,iphone,ipad,jquery-mobile,Javascript,Jquery,Iphone,Ipad,Jquery Mobile,下面的代码 <a data-rel="dialog" href="/Client/Events?ID=c2a7a58e-bef1-4574-987f-4adfc2c3ecc1"> <div class="ui-li-aside"> 1 </div> <div> Alejandra Garcia </div> </a> 这适用于我的电脑浏览器,也适用于wind

下面的代码

<a data-rel="dialog" href="/Client/Events?ID=c2a7a58e-bef1-4574-987f-4adfc2c3ecc1">
    <div class="ui-li-aside"> 1 </div>
       <div>
          Alejandra Garcia
       </div>
   </a>

这适用于我的电脑浏览器,也适用于windows phone浏览器。但不适用于iphone或ipad浏览器。看起来链接被点击了,但我没有看到对话框。要么是超级延迟,要么就是不工作

页面的响应和加载时间非常快,并且在常规桌面浏览器上无缝工作。这是一个很小的页面,可以加载


有什么建议可以让它工作吗?

好的,我在iOS Safari的调试控制台下查看了该站点。Safari似乎正在阻止您的对话框加载到facebook的跨域请求(此处引用:)-这是调试控制台显示的警告。根据我的研究,Safari在这方面似乎比其他浏览器更为严格。

我怀疑这与您正在使用的URL有关,而JQM不了解如何制作这样的链接:

/Client/Events/StubCheckIn/innasf?stubID=c807321b-5381-4338-adef-9e676374d85d
没有文件结尾,没有标签,我一直在用一个简单的[?para=meter](https://github.com/jquery/jquery-mobile/issues/4253)link和JQM处理了几天

解决“ipad上无任何事情发生”的最简单方法是通过相应的JQM小部件启用ipad调试器和console.log-ging。在您的情况下,从这里开始(关于第3582行):

通过单击处理程序一直执行此操作,并确保标记所有返回值,这些返回值由于各种原因而结束函数

当您完成单击处理程序(不是那么长)时,您将看到它触发一个changePage,因此跟随它到changePage处理程序并继续标记。这应该从第(3232)行开始:

一直浏览changepage,然后进入TransitionPage(我想不会是这样)和$.mobile.loadPage(更有可能是#2931)

一旦您标记了所有内容(在loadpage!之后停止:-),请在浏览器和ipad上重新加载该页面,并查看ipad与浏览器之间的故障。可能需要一个小时,但之后您将很好地了解JQM的工作原理:-)

另一个原因可能是pushstate处理程序(大约#3781)。如果浏览器支持pushstate(桌面是,iOS…不确定,iOS3否),您可以创建漂亮的URL,因此如果您从页面开始:

root.com/client/events/checkin/innasf
对话

http://root.com/Client/Events/StubCheckIn/innasf?stubID=96e63aee-1465-4ecd-ad35-123f240d09ff
您的浏览器仍然显示页面url-可能是因为您将changehash设置为false(保留url)。这(我相信)是由pushstate处理程序完成的,因为您的URL应该是:

 root.com/client/events/checkin/innasf#http://root.com/Client/Events/StubCheckIn/innasf?stubID=96e63aee-1465-4ecd-ad35-123f240d09ff&some-dialog-ending
这将是非pushstate设备将尝试解析的url(例如,我的iPad ios3.3),它也不起作用

然而,我的猜测是,当URL由JQM解析时,您的链接在click或changepage处理程序中的某个地方失败


如果你通过了,请告诉我浏览器和iOS之间的区别在哪里。然后我们可以看看这是否是可修复的。

您使用的是哪个版本的jQM?您是否确定您的
/Client/Events?ID=…
页面返回HTML时没有错误?jQM-1.1,是的,HTML返回正确。它可以在所有桌面浏览器上运行。有没有可以发布的示例链接?我原以为这和AJAX页面加载有关,但若它在桌面上正常工作就不行了。你们能分享一下你们是如何在ios safari中调试的吗?是否存在类似firebug的功能?您可以先进入设置,然后进入Safari,再进入高级,在iPad上启用调试控制台。这不是一个很好的控制台,但确实有帮助。这是另一种调试移动网站的方法:这很奇怪,因为错误消息明确表示这是试图访问一个框架,并给出了一个facebook URL,就像我发布的问题一样。我会复制消息,但是对话框不允许你复制文本。我做了更多的测试。错误不再出现,我可以通过点击来显示对话框。无法使其再次显示。我认为问题出在列表代码中的某个地方,而不是对话框代码中。这个答案让我深入了解了如何调试这个东西,我很惊讶JQM在检测没有文件扩展名的链接时遇到了问题。看起来很老派!我希望我有时间调试jQM,但我没有也许我现在必须用一种更简单的方法,把它变成一个普通的页面,而不是一个对话框。谢谢你的回答,没问题。如果您有空,请发回,然后我将检查我的2个实例是否有帮助。pushstate刚刚由jqm修复。我在ipad上再次尝试了你的页面。还是不行。因此,排除了一种选择。
http://root.com/Client/Events/StubCheckIn/innasf?stubID=96e63aee-1465-4ecd-ad35-123f240d09ff
 root.com/client/events/checkin/innasf#http://root.com/Client/Events/StubCheckIn/innasf?stubID=96e63aee-1465-4ecd-ad35-123f240d09ff&some-dialog-ending