我正在开发一个 Chrome 扩展程序,用于读取用户正在浏览的网页上的数据。我在内容脚本中使用 jQuery 从 DOM 中获取数据。在除了使用 AngularJS 的网站之外的所有页面中,它都能按预期工作。该页面使用路由机制来加载连续的页面。但是当这种路由更改发生时,内容脚本并不会重新加载。
我在 background.js 页面中使用 Chrome 的 webNavigation 监听 onHistoryStateUpdated。
但是这个事件甚至在下一页的数据完全加载之前就触发了。我在开发者控制台中使用了以下代码,可以正确地获取请求的数据。
但是当从内容脚本调用时,此injector()命令无法正常工作。我们如何从Chrome扩展访问此injector数据或根作用域?谢谢。
chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) {
console.log(details);
chrome.tabs.sendMessage(details.tabId, {action: "open_dialog_box"}, function(response) {
});
});
但是这个事件甚至在下一页的数据完全加载之前就触发了。我在开发者控制台中使用了以下代码,可以正确地获取请求的数据。
angular.element(document.getElementById('container')).injector().get('$rootScope')
但是当从内容脚本调用时,此injector()命令无法正常工作。我们如何从Chrome扩展访问此injector数据或根作用域?谢谢。
angular.element(document.getElementById('container')).scope().$root
- Vinay K