3

我有一个 framework7 应用程序,我需要将外部页面加载到应用程序中。这意味着导航栏和所有内容都应该保留在顶部,但我应该能够在正文中显示外部 url 的内容。更像是应用内浏览器。

我尝试使用 iFrame,但它不适用于基于 https 的网址。有什么办法吗?

另请注意,如果我将external类添加到锚标记中,则页面将在新窗口中打开。不在应用程序内。

4

2 回答 2

5

使用 AJAX 将 html 插入到您的页面中。使用 Javascript,您可以将“外部”页面 (EXTERNALPAGE.php) 加载到<div>您选择的页面 (PAGEPlaceholder) 中。

以下是建议代码的摘要,这不是一个工作示例...

您的 HTML 可能如下所示:

<div data-page="PAGENAME" class="page navbar-through toolbar-through">

<div class="navbar ">
    <div class="navbar-inner">              
         <div class="left"></div>
        <div class="center sliding">Page Title</div>
        <div class="right"></div>
    </div>
</div>  


<div class="page-content ">         
    <div id="PAGEPlaceHolder"></div>                                                    
</div>
...

JS 可能看起来像这样:

myApp.onPageInit('PAGENAME', function (page) {  

$$.get('EXTERNALPAGE.php', {}, function (data) {        
        $$('#PAGEPlaceHolder').html(data);          
    });     
});
于 2015-10-07T13:30:39.747 回答
5

我尝试使用$$.get,但它包含了他们的css,这弄乱了我的东西,所以我最终使用iframe将其隔离在弹出窗口中。

$$(document).on('click', '.open-popup', function (e) {
    var link = this.data("url");
    var iframe = '<iframe width="100%" style="height: 100em;" src="http://cors.io/?u=' + link + '" frameborder="0"></iframe>';
    $$('.popup-body').html("Loading...");
    $$('.popup-body').html(iframe);
    app.popup('.popup');
});
于 2015-10-07T23:02:17.783 回答