【问题标题】:Can I get an event when the address bar is modified?修改地址栏时可以得到事件吗?
【发布时间】:2013-01-07 09:39:46
【问题描述】:

有没有event是用户修改地址栏文字时产生的?比如,当用户尝试通过地址栏执行 javascript。

我检查了所有的window 事件,它们都与地址栏无关。

更新

根据 cmets,我尝试过 window.onhashchange,但它仅在哈希更改时触发,而不是实际 URL。

我需要这个来找到一种方法来阻止用户从地址栏执行 javascript 的原因。所以,计时器解决方案也不起作用。

有什么办法可以捕捉到onbeforeunload 并将位置设置回之前的位置?

【问题讨论】:

标签: javascript html events browser


【解决方案1】:

没有这样的事件(我是说原生的)

这是一个关于如何根据窗口位置更改(使用 setInterval)制作事件的主题:

http://www.bennadel.com/blog/1520-Binding-Events-To-Non-DOM-Objects-With-jQuery.htm

如果你使用 ajax,你可能想看看这个:

http://www.asual.com/jquery/address/

【讨论】:

  • 我看到一个使用 setInterval() 的,正在查看平台中已经可用的东西。
  • 另外,setinverval 仅在希望对哈希进行任何更改时才有效,仍然保持在同一页面中。
【解决方案2】:

没有这样的技巧,但也许window.onbeforeunload 可以帮助你。有了这个,您至少可以知道用户何时离开您的页面。

在此处查看示例:http://www.4guysfromrolla.com/demos/OnBeforeUnloadDemo1.htm

【讨论】:

  • 不过,即使我捕捉到onbeforeunload 事件,我也无法阻止用户,对吧?
  • 你不能强迫他,但你可以要求他。将显示一个窗口,询问他是否真的要离开。
  • onbeforeunload 触发时,我可以将页面重定向回原始页面吗?
  • 这取决于所使用的浏览器。在所有较新的:我认为你不能。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 2011-08-19
相关资源
最近更新 更多