javascript - Window.location 可以工作,但不是到处都有

标签 javascript

var where_to = confirm("You have locked this record. You can only leave by clicking cancel.");

if (where_to== true) {
 alert(window.location);
 window.location.href = window.location;
 } else {
 window.location.href = window.location;
 }

此函数适用于 IE 7、firefox 和 opera 10.6。它的作用是不允许加载不同的页面,除非用户单击调用 token 函数的链接或按钮。

除非调用 token 函数,否则 window.location.href 将替换为当前 url。

感谢您的宝贵时间。

最佳答案

你的语法很困惑。 else 语句太多。

这就是问题所在:

} else {
  //alert(tokenset);
  alert('You have passed the token test');

}

编辑

根据您的评论,听起来这就是您想要做的事情:您希望能够阻止用户离开页面,除非他们通过单击“取消”来离开页面。

在这种情况下,您应该使用 onbeforeunload 事件。这是IE page ,这是 Mozilla page关于此次事件。

这个想法是,每当用户尝试离开页面时(即使只是关闭浏览器或在地址栏中键入其他地址),都会调用此函数。

功能有限。您只能返回一个字符串。浏览器使用它来提示用户如果他们点击取消,那么他们会留在页面上。他们可以点击“确定”并继续离开页面。虽然您只能返回一个字符串,但您不必这样做。您可以检查条件,并且仅在条件通过时返回字符串。看我的这个例子:

window.onbeforeunload = function () {
    if (MyTokenIsNotSet) {
        return 'You have not released the lock';
    }
};

如果您的 token 已设置,那么用户将看不到任何内容,他们只会离开页面。否则,这将提示用户确保他们确实想要离开该页面。

需要注意的一些事项:

  • 提示在不同的浏览器中看起来不同(措辞不同)。我会尝试一下,以确保您的字符串与提示的其余部分看起来没问题。
  • 这不会阻止用户离开。这只提醒用户他们应该做一些不同的事情。没有办法可靠地阻止用户离开页面。
  • 除此之外,您还应该处理用户 session 结束的事件(在服务器上)并在那时释放锁定。

关于javascript - Window.location 可以工作,但不是到处都有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4018626/

相关文章:

javascript - 似乎无法使用 express 在 Node.js 上启动和运行 MySQL(之前只使用过 WAMP/MAMP)

javascript - 在 Dropzone 中上传之前的 Zip 文件

javascript - 删除第二个类并添加新类

javascript - 我们可以循环遍历 event.target 并获取表单内每个元素的属性值吗

javascript - Jquery 从 JSON 结果中获取特定值?

javascript - 从嵌套对象中删除父键

javascript - 计时器上的按钮图像更改

javascript - 如何在图像上放置很棒的字体并模仿悬停属性

javascript - $firebaseArray 子记录的子节点上没有 ID

javascript - php ajax文件上传,$_FILE为空