我有一个非常奇怪的错误。我有一个在应用程序模式下运行的网页(当你在iOS上添加到主屏幕时)。我有一个A元素,它会转移到同一域中的另一个页面(test2.html)。如果我点击它,appmode就会退出,并打开一个新的浏览器窗口。
但是,如果我创建一个位置.href='test2.html',它就可以工作了。现在奇怪的是,在test2.html上,我只有一个href="test1.html"的A元素,现在它可以工作了。
我有一个论点,如果你在点击任何其他链接之前做了一个位置.href,每个链接都会在你自己的域中工作。
我的测试用例:
Test2.html
<a href="javascript:void();" onclick="transfer();">Test1</a>
<script>
function transfer(){
location.href = "test1.html";
}
</script>
Test1.html
<a href="test2.html">Test2</a>
您可以更改Test2,使其类似于Test1,只需更改href,它就会崩溃。
我真的不知道为什么会发生这种事。为什么你在同一个域中完成定位.href后它就可以工作了?
我也遇到过同样的问题。目前,我只是通过使链接返回错误来解决这个问题:
<a href='#' onclick='doSomething(); return false;'>test</a>
编辑:这似乎是一个更好的答案:iPhone Safari Web应用程序在新窗口中打开链接