Javascript 是否可以单击“=”按钮;历史&引用;

Javascript 是否可以单击“=”按钮;历史&引用;,javascript,cordova,logout,Javascript,Cordova,Logout,我将在我的PhoneGap应用程序中实现注销按钮,它将用户返回到身份验证页面(清除字段)。对于我正在使用锚定onclick事件的按钮: <script type="text/javascript"> function doLogout() { var backlen = history.length; history.go(-backlen); window.location.replace("index.html"); } </script>

我将在我的PhoneGap应用程序中实现注销按钮,它将用户返回到身份验证页面(清除字段)。对于我正在使用锚定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>

函数doLogout(){
var backlen=history.length;
历史。走(-backlen);
window.location.replace(“index.html”);
}
但它不起作用,也就是说,它只是将我返回到已填充文件的身份验证页面,似乎只是后退了一步。我不确定历史。clear()
,因为谷歌搜索它什么也没给我:

<a data-role="none" href="index.html" onclick="javascript:history.clear();"></a>


谁能告诉我哪里出了问题?若有另一个解决方案来处理PhoneGap中的注销事件,我会遵循它。谢谢

如果使用
onclick
属性,引号中的是实际语句,而不仅仅是函数名。因此:

<a data-role="none" href="#" onclick="doLogout();"></a>
<!-- Note the (); ----------------------------^^^   -->
我无法理解问题的第二部分,但我只想指出,在第二个示例中,
onclick
属性上不需要或不需要
javascript:
。您仅在需要URI的地方使用该伪协议(例如,锚的
href
)。
onXYZ
属性的内容始终是代码,而不是URI


最后:除非你在做一些样式设计,否则这两个链接都很难点击,因为它们都是空的。:-)

history.go的调用将被忽略,因为您返回的步骤比历史记录中的项目多一步。
length
属性具有包括当前项目在内的项目数,因此,如果历史记录中有四个项目,则只能返回三个步骤

要返回到第一步,请从长度中减去一:

history.go(-(history.length - 1));
但是,如果您专门为该页面打开了一个新窗口,那么这只会将您带回起始页面。否则,用户将返回到使用该窗口访问的第一个页面


history
对象没有
clear
方法

参考:


浏览器历史记录属于用户,您无法从中删除任何内容。

我从未开发过任何PhoneGap,但在web应用程序中,您可以使用下面的代码

尝试
window.location.replace(url)


重定向后,无法转到上一页。

使用:navigator.app.clearHistory()

啊,但是当用户单击“上一步”并运行此代码时会发生什么<代码>历史记录。单击“上一步”时,长度不会更改,但运行该代码将超出历史记录。似乎有一个内部指针无法获取其值:(@Jack:Good point.您对浏览器历史记录没有太多控制权,因此似乎没有一个解决方案适用于所有情况。我提出了类似于
history.go(-history.length+1);setTimeout(function(){location.href='…default page…;},0)
这似乎适用于我的特殊情况,但我讨厌使用它=/@Guffa history.go(-(history.length-1));不适用于IE。但它在chrome中运行良好。请告诉我是否遗漏了任何内容?@Piyus:我在IE中尝试过,它似乎运行良好。您可能与其他代码有冲突,请尝试更具体的
window.history.go(-(window.history.length-1))
。我已经知道了。但是今天我在jquery中的一个带有点击事件的锚元素上尝试了它。它将重定向到一个新页面,并且我能够返回到上一页…你能帮我吗。。?
history.go(-(history.length - 1));