繁体   English   中英

如何在jquery mobile中打开外部html页面作为弹出窗口?

[英]How to open an external html page as a popup in jquery mobile?

我有这样的链接

<a href='/path/to/popup.html' data-role="button">COME HERE </a>

我想打开popup.html file as a jquery popup. 我不能把它作为带有id的<div>放在当前页面中。 我必须把它放在当前文件旁边。

I cant use dialog's as it reloads the current page. 有什么想法怎么做?

popup.html I am using just a single header.

Or any methods through which I can avoid the page being reloaded when dialog is closed?

使用.load()popup.html加载到占位符(即<div id="PopupPH"> )。 此占位符可以放在data-role="page或其外部,具体取决于您使用的jQuery Mobile版本。

此外,在popup.html中 ,您需要将data-role=page"更改为data-role="popup ,以便将其视为弹出窗口而不是页面

jQuery Mobile 1.4

body标记或data-role="page"插入占位符并加载popup.html

<body>
  <div data-role="page">
  </div>
  <div id="PopupPH">
    <!-- placeholder for popup -->
  </div>
</body>

要么

<body>
  <div data-role="page">
    <div id="PopupPH">
      <!-- placeholder for popup -->
    </div>
  </div>
</body>

popup.html加载到占位符中

$("#PopupPH").load("popup.html");

popup.html popup div中,添加JS以在关闭后创建,打开和删除弹出窗口。

<div data-role="popup">
  <!-- contents -->
  <script>
    $("[data-role=popup]").enhanceWithin().popup({
        afterclose: function () {
            $(this).remove();
        }
    }).popup("open");
  </script>
</div>

jQuery Mobile 1.3及以下版本

与上面相同,弹出占位符应该在data-role="page" ,因为jQM 1.3不支持外部弹出窗口。 另外,用.trigger("create")替换.enhanceWithin() .trigger("create")

使用jQuery mobile中的框架和弹出窗口,你可以简单地在里面包含一个iframe,虽然对话框仍然是你最好的选择。 (特别是弹出窗口外的点击...杀了它)

<div class="hidden">
     <div data-role="popup" id="externalpage">
         <iframe src="http://www.bbc.com" 
                 width="480" 
                 height="320" 
                 seamless>
          </iframe>
     </div>
</div>    

<a href='#externalpage' 
   data-rel="popup"  
   data-role="button">COME HERE</a>

<script>
$(document).on("pageinit", function() {    
    $( "#externalpage" ).on({
        popupbeforeposition: function( event, ui ) {  
            console.log( event.target );
        }
    });
});
</script>

演示http//jsfiddle.net/tcS8B/ jQuery Mobile Dialogs不刷新我不认为的页面,它只是用新的背景掩盖它以引起注意力集中。

尝试

<a href="google.com" rel="external">Test</a>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM