ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript – Jquery mobile data-rel =“对话框”无法在iphone或ipad上运行

2019-05-30 13:31:46  阅读:215  来源: 互联网

标签:jquery javascript 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>

这适用于我的计算机浏览器,也适用于Windows手机浏览器.但是在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上没有发生任何事情”的最简单方法是通过相应的JQM小部件启用iPad调试器和console.log-ging.在你的情况下从这里开始(关于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之后如何工作:-)

另一个原因可能是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

您的浏览器仍然显示页面网址 – 可能是因为您将changehash设置为false(保留网址).这(我相信)是由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非pushstate设备将尝试解决(例如我的iPad ios3.3),它也无法正常工作.

我的猜测是,当JQM解析URL时,您的链接在click或changepage处理程序中的某处失败.

如果你标记自己,请告诉我浏览器和iOS之间的区别.然后我们可以看看这是否可以解决.

标签:jquery,javascript,iphone,ipad,jquery-mobile
来源: https://codeday.me/bug/20190530/1183483.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有