content-script.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * 注意这里的方法名称,其实是:window[`${toolName.replace(/[-_]/g,'')}ContentScript`];
  3. * @author 阿烈叔
  4. */
  5. window.helloworldContentScript = function () {
  6. console.log('你好,我是来自FeHelper的工具Demo:hello world!');
  7. };
  8. /**
  9. * 如果在 fh-config.js 中指定了 noPage参数为true,则这里必须定义noPage的接口方法,如:
  10. * 注意这里的方法名称,其实是:window[`${toolName.replace(/[-_]/g,'')}NoPage`];
  11. * @author 阿烈叔
  12. */
  13. window.helloworldNoPage = function (tabInfo) {
  14. alert('你好,我是来自FeHelper的工具Demo:hello world!你可以打开控制台看Demo的输出!');
  15. console.log('你好,我是来自FeHelper的工具Demo:', tabInfo);
  16. // background 示例:获取当前浏览器的所有tab
  17. chrome.runtime.sendMessage({
  18. type: 'fh-dynamic-any-thing',
  19. params: {
  20. tabId: window.__FH_TAB_ID__ // 这是FH的内置变量,表示当前Tab的id
  21. },
  22. func: ((params, callback) => {
  23. // TODO: 这里可以调用 chrome.* 的API,随便用。。。
  24. // Case1:获取当前窗口的全部tab
  25. chrome.tabs.query({currentWindow: true}, tabs => {
  26. let jsonInfo = JSON.stringify(tabs);
  27. // 注入到页面,注意看这里如何读取外面传进来的参数
  28. chrome.tabs.executeScript(params.tabId, {
  29. code: 'console.log(' + jsonInfo + ');'
  30. });
  31. });
  32. callback && callback();
  33. return true;
  34. }).toString()
  35. });
  36. };