Jquery mobile data-rel=“dialog” 在 iPhone 或 iPad 上不起作用
Jquery mobile data-rel="dialog" doesnot work on iphone or ipad
以下代码
<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浏览器。看起来链接被点击了,但我没有看到任何对话框。要么超级延迟,要么就是不工作。
页面的响应和加载时间非常快,并且在常规桌面浏览器上无缝运行。这是一个加载的非常小的页面。
我应该尝试让它工作的任何提示?
我怀疑这与你正在使用的网址有关,JQM不明白如何处理这样的链接:
/Client/Events/StubCheckIn/innasf?stubID=c807321b-5381-4338-adef-9e676374d85d
没有文件结尾,没有主题标签,我一直在与一个简单的 [?para=meter] (https://github.com/jquery/jquery-mobile/issues/4253( 链接作斗争,JQM 处理了几天。
我解决"ipad上什么都没有发生"的最简单方法是启用iPad调试器和控制台.log通过相应的JQM小部件。在您的情况下,从这里开始(大约第 3582 行(:
// click routing - direct to HTTP or Ajax, accordingly
$( document ).bind( "click", function( event ) {
// your first flag
console.log("flag 1 - click detected")
if( !$.mobile.linkBindingEnabled ){
return;
}
var link = findClosestLink( event.target ), $link = $( link ), httpCleanup;
if ( !link || event.which > 1 || !$link.jqmHijackable().length ) {
// your second flag
console.log("flag 2 - not a link?!?)
return;
}
...
通过点击处理程序一直执行此操作,并确保标记所有返回,这些返回由于各种原因结束了函数。
当您完成点击处理程序(不是那么长时间(时,您将看到它触发了一个 changePage,因此请按照它进入 changePage 处理程序并继续标记。这应该从这里的行 (#3232( 开始:
// Show a specific page in the page container.
$.mobile.changePage = function( toPage, options ) {
console.log("flag x - made it to changepage");
...
一直通过更改页面,然后按照过渡页面(我认为不会是这样(和 $.mobile.loadPage(关于 #2931,更有可能(。
一旦你标记了所有内容(加载页面后停止!:-(,在浏览器和iPad上重新加载页面,看看iPad与浏览器相比失败的地方。可能需要一个小时,但之后你会对 JQM 的工作原理有很好的了解:-(
另一个原因可能是推送状态处理程序(大约#3781(。如果浏览器支持推送状态(桌面是的,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
这将是非推送状态设备将尝试解决的 url(例如,我的 iPad ios3.3(,它也无法正常工作。
然而,我的猜测是,当 JQM 解析 URL 时,您的链接在单击或更改页面处理程序中的某个地方失败。
如果您标记自己,请让我知道浏览器和iOS之间的区别在哪里。然后我们可以看看这是否可以修复。
好的,我在iOS Safari的调试控制台下检查了该站点。看起来 Safari 正在阻止您的对话框加载的对 facebook 的跨域请求(此处引用:不安全的 JavaScript 尝试访问 Safari 中的帧警告( - 这是调试控制台显示的警告。根据我的研究,Safari似乎比其他浏览器更严格。
- jquery scrollTO iPhone/iPad没有't向右滚动
- 无法延迟iPhone/iPad上的两个JavaScript操作
- 更改iphone/ipad保存缩放功能的字体大小
- Mobile Safari (iPhone/iPad) 在动态插入大量 DOM 元素时崩溃
- 如何让HTML5 JavaScript画布识别来自iPhone / ipad的触摸/点击
- 如何使用Javascript添加iPhone / iPad检测
- 如何从javascript到iphone / ipad获取价值
- jquery sticky Panel-v1.4.1 - iphone, ipad fix?
- iPhone/iPad touch events Javascript LineChart
- 如何在iPhone / iPad上更改视口
- javascript jquery 调用 php 在 iPhone/Ipad 上不起作用
- iPhone/iPad 在纵向和横向上的视点变化
- 谷歌地图无法在iPhone / iPad工作灯6.2应用程序上运行
- 角度-iPhone/iPad上的ng模糊问题
- window.screen.width在阶梯模式下提供iPhone/iPad屏幕的高度
- 流星:谷歌登录不'不能在iphone/ipad上工作
- iphone, ipad, android javascript print()
- iPhone/iPad上的自动对焦窗体元素
- 启用/禁用iPhone/iPad的滚动,但启用网站滚动
- mootools setProperty方法不能在iphone, ipad上工作