如何检测外国Ember应用程序的路径变化?

时间:2015-11-25 00:43:52

标签: jquery google-chrome ember.js google-chrome-extension zendesk

我正在尝试为Zendesk制作Chrome扩展程序,看起来他们的应用程序是使用Ember构建的。我使用了$(document).ready,但是只有刷新页面才会真正触发......否则它根本不会触发。如何在我的Chrome扩展程序中监听Zendesk中的页面更改?

我环顾四周,只找到了答案,只有这是我自己的Ember应用程序。此外,它不是哈希变换。

2 个答案:

答案 0 :(得分:0)

听起来你想要为beforeunload事件实现一个监听器:https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

但是,不是设置确认消息,而是实现导航更改时要执行的任何操作。如果你添加一条确认信息,它会弹出一个对话框,询问你是否真的要离开,但听起来不像你想要的那样。听起来你只想监视导航事件已经发生,但我可能会弄错。

答案 1 :(得分:0)

以下是一些想法:

  • 你可能会劫持history对象方法。
  • 或者,如果您可以访问特权Chrome API,则可以尝试使用network.onNavigated。我不知道是否在历史pushState上调用它,更好的检查。

你也可以查看Ember inspector code,它提供了很多关于当前正在运行的ember应用程序的见解,包括当前活动的路径所以你可能会找到工具来做什么你需要在那里。

我认为它的工作原理是在页面中注入一些代码,然后通过窗口消息communicating with it。然后,注入的代码执行请求的分析并发回结果。