cordova 有没有可能onclick=“history.clear();“

fgw7neuy  于 2022-11-15  发布在  其他
关注(0)|答案(4)|浏览(127)

我将在我的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我会遵循它。谢谢

disbfnqx

disbfnqx1#

history.go的调用将被忽略,因为您要返回的步骤比历史记录中的项目多一步。length属性包含的项目数包括当前项目,因此如果历史记录中有四个项目,您只能返回三步。
要返回到第一步,您需要从长度中减去1:

history.go(-(history.length - 1));

但是,只有当您打开了一个专门用于该页面的新窗口时,它才会将您带回到起始页面。否则,它会将用户带回到他使用该窗口访问的第一个页面。
history对象没有clear方法。
参考:https://developer.mozilla.org/en-US/docs/DOM/window.history
浏览器历史记录属于用户,您不能从中删除任何内容。

elcex8rz

elcex8rz2#

我从来没有开发过任何PhoneGap,但在网络应用程序中,你可以使用下面的代码。
尝试window.location.replace(url);
重定向后,没有办法去上一页。

x8goxv8g

x8goxv8g3#

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

<a data-role="none" href="#" onclick="doLogout();"></a>
<!-- Note the (); ----------------------------^^^   -->

另外请注意,由于您没有采取任何措施来阻止默认的跟随链接的操作,浏览器将跟随href,即#将您带到当前页面的顶部。您可以通过添加return false;来阻止这种情况(如果您愿意):

<a data-role="none" href="#" onclick="doLogout(); return false;"></a>

我无法理解您问题的第二部分,但我只想指出,在您的第二个示例中,您不需要或不想要onclick属性上的javascript:。您只在需要URI的地方使用伪协议(例如,锚的href)。onXYZ属性的内容始终是代码,而不是URI。
最后:除非你在做一些样式方面的工作,否则这两个链接都很难点击,因为它们是空的。

ilmyapht

ilmyapht4#

用途:导航器。应用程序。清除历史();

相关问题