請問想在background.js引入另一個js文件, 應該怎麼寫?因為和popup/options page有用到同樣的function, 就集中放到common.js, popup/options都有html, 可以用<script src="common.js"></script>
, 所以background.js 怎麼引入common.js?
依照下方指示放置 script
標籤,就能讓 background.js
取得 common.js
的函式了,除非 common.js
中沒有全域函式。
<script src="common.js"></script>
<script src="background.js"></script>
既然都回答了,就順帶一提引用 script
的方式吧!
$.getScript('common.js');
function loadScript(src) {
return new Promise(function (resolve, reject) {
const script = document.createElement('script');
document.body.appendChild(script);
script.onload = () => resolve(!0);
script.onerror = () => reject(!1);
script.src = src;
});
}
/* ES2015 */
loadScript('common.js').then(function () {
/* ... */
});
/* ES2017 */
(async function () {
if (!await loadScript('common.js')) return;
/* ... */
})();
兩者擇一。
推薦後者,因為自己寫的才有成就感。
background.js在manifest.json裡:
{
"manifest_version": 3,
...
"background": {"service_worker": "background.js"}
所以沒有<script src="background.js"></script>