[英]Do injected script from Chrome Extension have access to javascript (angularjs) on the page?
我正在尝试使用Google Chrome浏览器扩展程序作为我正在开发的网页的补充工具。
我使用chrome.tabs.executeScript
通过Google Chrome扩展程序将该script
注入了Web应用程序。
注入脚本
<script>
var angular = document.querySelector('body');
var scope = angular.element(angular).scope();
...
</script>
该脚本已正确注入。 但是,出现此错误Uncaught TypeError: angular.element is not a function
脚本时, Uncaught TypeError: angular.element is not a function
。 这基本上意味着脚本无法找到AngularJS依赖项(?)。
所以我的问题-从Chrome扩展程序注入的脚本可以访问页面上的javascript(AngularJS)吗?
如果是,我在做什么错? 如果没有,什么是好的替代解决方案?
您正在尝试重用在隔离范围内运行的页面脚本中的代码。
由于DOM是共享的,因此您可以通过在内容脚本中创建脚本标签来注入页面脚本。
的script.js
// define pageScript as a string or use xhr
// to load it from a separate file, i. e. page-script.js
var pageScript = `
var angular = document.querySelector('body');
var scope = angular.element(angular).scope();
//...`;
var scriptEl = document.createElement('script');
scriptEl.textContent = pageScript;
document.head.appendChild(scriptEl);
background.js
chrome.browserAction.onClicked.addListener(function() {
chrome.tabs.executeScript({ file: 'script.js' });
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.