我将在我的PhoneGap应用程序中实现logout按钮,这将使用户返回到身份验证页面(字段已清除)。对于按钮,我将使用带有onclick事件的锚:
<script type="text/javascript">
function doLogout() {
var backlen = history.length;
history.go(-backlen);
window.location.replace("index.html");
}
</script>
<a data-role="none" href="#" onclick="doLogout"></a>
但它不起作用,也就是说,它只是让我返回到已经填充了字段的认证页面,看起来就像是后退了一步。我不确定history.clear(),因为在谷歌上搜索它什么也没有给我:
<a data-role="none" href="index.html" onclick="javascript:history.clear();"></a>
有人能告诉我我的问题在哪里吗?如果有另一个解决方案来处理注销事件在PhoneGap我会遵循它。谢谢
4条答案
按热度按时间disbfnqx1#
对
history.go
的调用将被忽略,因为您要返回的步骤比历史记录中的项目多一步。length
属性包含的项目数包括当前项目,因此如果历史记录中有四个项目,您只能返回三步。要返回到第一步,您需要从长度中减去1:
但是,只有当您打开了一个专门用于该页面的新窗口时,它才会将您带回到起始页面。否则,它会将用户带回到他使用该窗口访问的第一个页面。
history
对象没有clear
方法。参考:https://developer.mozilla.org/en-US/docs/DOM/window.history
浏览器历史记录属于用户,您不能从中删除任何内容。
elcex8rz2#
我从来没有开发过任何PhoneGap,但在网络应用程序中,你可以使用下面的代码。
尝试
window.location.replace(url);
重定向后,没有办法去上一页。
x8goxv8g3#
如果使用
onclick
属性,引号中的内容是实际的语句,而不仅仅是函数的名称。另外请注意,由于您没有采取任何措施来阻止默认的跟随链接的操作,浏览器将跟随
href
,即#
将您带到当前页面的顶部。您可以通过添加return false;
来阻止这种情况(如果您愿意):我无法理解您问题的第二部分,但我只想指出,在您的第二个示例中,您不需要或不想要
onclick
属性上的javascript:
。您只在需要URI的地方使用伪协议(例如,锚的href
)。onXYZ
属性的内容始终是代码,而不是URI。最后:除非你在做一些样式方面的工作,否则这两个链接都很难点击,因为它们是空的。
ilmyapht4#
用途:导航器。应用程序。清除历史();