【问题标题】:Javascript refresh triggered or intentional?Javascript刷新触发或故意?
【发布时间】:2015-11-09 10:45:45
【问题描述】:

如果用户单击刷新或执行 f5 或通过选项卡左键单击/重新加载进行刷新,则这是有意的操作!

黑客能否在图像 src(但不要太具体;)或页面上的其他任何地方注入脚本,从而强制重新加载/重定向?

如果是这样,onbeforeunload 事件中是否有某些内容会告诉我这是由代码触发

window.onunload=function(e){console.dir(e);}
location.reload();
Event
Navigated to https://www.google.com/webhp?hl=en

证明Kaii 是正确的!我想知道为什么浏览器供应商不将此事件作为对象 - 至少检查刷新是否是用户意图???

【问题讨论】:

  • 不是真的老兄,我隐约记得在浏览器(我认为是 chrome)知道我是在 jquery 触发按钮而不是单击它的情况下编写代码。

标签: javascript page-refresh


【解决方案1】:

黑客能否在图像 src(但不要太具体;)或页面上的其他任何地方注入脚本,从而强制重新加载/重定向?

是的,即:

<script>window.location = window.location;</script>

如果是这样,onbeforeunload 事件中有什么东西会告诉我这是由代码触发的吗?

没有。在onbeforeunload() 期间可观察到的事件对象不包含任何有关卸载原因的信息。

【讨论】:

  • 谢谢!你的最后一句话只有一个字,所以要问你怎么知道你是对的? (你在陈述一个事实)你有 console.dir(event) 吗?如果是这样怎么办?我想这样做
  • @BenMuircroft 在 firebug 控制台中有一个“persist”按钮,因此在重新加载页面时不会清除控制台。直接发出window.onbeforeunload = function (evt) { console.log(evt); }; 后跟window.location = window.location; 以检查事件属性。
  • 老兄,我刚刚测试了 +1 更新了我的问题,因为我不明白为什么浏览器供应商会留下这样的安全漏洞!?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多