1

当我在 safari 浏览器中打开我的项目并在 ipad 的主屏幕上添加图标时,链接无法按我的意愿工作。

情况是这样的:

我有一个目录 project/index.html 。

我有目录 project/edition/edition.html (在 index.html 的弹出窗口中打开)

和目录 project/magazine/magazine.html

当我单击 index.html 中的按钮以打开弹出窗口以选择我想要的菜单时,当用户选择某个选项时,请转到 magazine.html。问题是始终在浏览器中打开,我希望在我的应用程序中继续而不关闭应用程序。

任何想法?

我为此使用了 ` 并且我已经测试了所有目标:self、parent、top 等。并且总是在浏览器中打开

编码:

索引.html

<div data-role="popup" id="edicaorevista" style="max-height:100%">
    <a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>
        <iframe src="Edition/Edition.html" style="width:730px;height:300px"></iframe>
  </div>

 <a href="#edicaorevista" id="ler" data-rel="popup" data-inline="true" data-direction="reverse" data-position-to="window"></a>

版本.html

<a href="../magazine/magazine.html"><img src="imgs/landscape/edicao2013.png" alt="image01" />
4

2 回答 2

2

查看 Javascript 上的window.open()或 HTML 上的 target 属性:

 _blank Opens the linked document in a new window or tab
 _self  Opens the linked document in the same frame as it was clicked (this is default)
 _parent    Opens the linked document in the parent frame
 _top   Opens the linked document in the full body of the window framename  Opens the linked document in a named frame

这是一个纯 HTML 示例:

  <a href="http://www.google.com" target="_self">google</a>

您可以像这样使用 iframe 和目标:

<a href="index.php" target="myFrame" >go to main </a>
<iframe id="myFrame" name="myFrame"  src="documents.php ></iframe>
于 2013-06-06T20:14:59.917 回答
1

我解决了。。

我在..中实现了一个脚本,当我在全屏模式下看到我的应用程序时,我的意思是当我将图标添加到主屏幕并打开它时..链接不再在浏览器中打开。

我使用的脚本是这样的:

 (function(document,navigator,standalone) {
            // prevents links from apps from oppening in mobile safari
            // this javascript must be the first script in your <head>
            if ((standalone in navigator) && navigator[standalone]) {
                var curnode, location=document.location, stop=/^(a|html)$/i;
                document.addEventListener('click', function(e) {
                    curnode=e.target;
                    while (!(stop).test(curnode.nodeName)) {
                        curnode=curnode.parentNode;
                    }
                    // Condidions to do this only on links to your own app
                    // if you want all links, use if('href' in curnode) instead.
                    if('href' in curnode && ( curnode.href.indexOf('http') || ~curnode.href.indexOf(location.host) ) ) {
                        e.preventDefault();
                        location.href = curnode.href;
                    }
                },false);
            }
        })(document,window.navigator,'standalone');
于 2013-06-06T21:57:33.983 回答