微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我的浏览器扩展程序在页面加载时不执行任何操作工具箱中除外?

如何解决为什么我的浏览器扩展程序在页面加载时不执行任何操作工具箱中除外?

我一直在尝试制作Firefox扩展。在用户交互(例如浏览器操作)之后,我已经成功完成了工作。但是我希望我的扩展程序无需用户交互即可执行某些操作。但是,无论我做什么,页面加载都不会发生任何事情。这是我的超级简化代码

manifest.json

{
  "name": "Test","version": "0.1","manifest_version": 2,"background": {
    "scripts": ["test.js"]
  }
}

test.js

document.addEventListener("DOMContentLoaded",init);

function init() {
  document.body.innerHTML = "Hello World!";
}

在这里做错了什么?它可以在工具箱中使用,而不能在其他任何地方使用!

我还尝试过添加主机许可,如下所示:

"permissions": [
    "*://*.facebook.com/*"
  ],

解决方法

尝试一下:

manifest.json

{
  "name": "Test","version": "0.1","manifest_version": 2,"background": {
    "scripts": ["background.js"]
  },"permissions": ["webNavigation","*://*.facebook.com/*"]
}

background.js

browser.webNavigation.onDOMContentLoaded.addListener(handleOnDOMContentLoaded,{
  url: [{ hostEquals: 'www.facebook.com' }],});

function handleOnDOMContentLoaded({ tabId }) {
  browser.tabs.executeScript(tabId,{ file: 'test.js' });
}

test.js

document.body.innerHTML = 'Hello world!';

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。