One-file interface to detect whether your content script have loaded.
npm install webext-content-script-ping> One-file interface to detect whether your content script have loaded.
``sh`
npm install --save webext-content-script-ping
`js`
import {pingContentScript} from 'webext-content-script-ping';
From background.js, ping a tab id:
`js`
/ globals pingContentScript /
pingContentScript(tabId).then(() => {
// the content script was loaded!
}, () => {
// the content script was NOT loaded!
});
1. In your manifest.json, include the file as background and as content script:
`js`
{
"background": {
"scripts": [
"webext-content-script-ping.js"
]
},
"content_scripts": [
{
"js": [
"webext-content-script-ping.js",
"content.js"
]
}
]
}
2. In your background script only, run pingContentScript(tabId) as needed
`js`
// background.js
import pingContentScript from 'webext-content-script-ping';
pingContentScript(tabId);
`js`
// content.js
import 'webext-content-script-ping'; // this only responds to the ping
#### pingContentScript(tab)
Returns a Promise that succeeds if the content was loaded, fails if it wasn't.
It has an internal timeout of 300ms.
##### tab
Type: Tab or number
A Tab object or just its id as defined here: https://developer.chrome.com/extensions/tabs#type-Tab
* webext-options-sync: Helps you manage and autosave your extension's options.
* webext-inject-on-install: Automatically add content scripts to existing tabs when your extension is installed.
* Awesome WebExtensions`: A curated list of awesome resources for Web Extensions development.
MIT © Federico Brigante — Twitter