0

我有一个非常奇怪的错误。我有一个在 Appmode 下运行的网页(当您在 iOS 上添加到主屏幕时)。我有一个 A 元素可以转移到同一域中的另一个页面(test2.html)。如果我点击它,appmode 就会关闭,并打开一个新的浏览器窗口。

但是,如果我创建一个 location.href = 'test2.html' 它就可以了。现在奇怪的是,在 test2.html 上我只有一个带有 href="test1.html" 的 A 元素,现在它可以工作了。

我有一个论点,如果您在单击任何其他链接之前有时已经完成了 location.href,则每个链接都将在您自己的域中工作。

我的测试用例:

测试2.html

        <a href="javascript:void();" onclick="transfer();">Test1</a>
        <script>
        function transfer(){
            location.href = "test1.html";
        }
        </script>

测试1.html

        <a href="test2.html">Test2</a>

您可以更改 Test2 使其与 Test1 类似,只需更改 href 即可。

我真的不知道为什么会这样。为什么在同一域中完成 location.href 后它才起作用?

4

1 回答 1

1

我遇到了完全相同的问题。现在,我只是通过让我的链接返回 false 来解决它:

<a href='#' onclick='doSomething(); return false;'>test</a>

编辑:这似乎是一个更好的答案:iPhone Safari Web App opens links in new window

于 2012-09-11T10:10:34.180 回答