所以我開始制作 chrome 擴展。但是我遇到了服務作業者注冊失敗并且無法讀取未定義屬性的問題。

我有一個 manifest.json 和一個 background.js。這是 background.js
const websites = [
'desktop.bg/',
'ozone.bg/product/'
];
chrome.tebs.onUpdated.addListener((tabId, tab) => {
if (tab.url) {
for (let i = 0; i < websites.length; i ) {
if (tab.url.includes(websites[i])) {
const productId = tab.url.split(websites[i])[1];
chrome.tabs.sendMessage(tabId, { productId });
}
}
}
})
我不明白為什么會出現這些錯誤。是的,我已經檢查了有關此的其他帖子并嘗試了多種方法。
我試圖重新啟動 Chrome,添加一個 try and catch,添加另一個 js 檔案。然而它仍然不起作用。我想做的是檢查我是否在當前站點并將我正在查看的產品的 id 發送到 content.js
有人可以解釋一下嗎?
uj5u.com熱心網友回復:
有拼寫錯誤,所以chrome.tebs不存在。僅當您嘗試參考未定義物件上的子屬性時,這將引發錯誤,例如嘗試參考onUpdated.addListener,因為父tebs不存在而未定義任何屬性。
這不是我第一次坐了幾個小時盯著代碼,卻在讓同事看一看時發現了一個明顯的錯字!
我推薦一個帶有拼寫檢查器的 IDE,變數名上那些煩人的下劃線非常有用!VSCode 有這個功能,自從我使用它以來,我沒有遇到任何上述煩人的拼寫錯誤!了解駝峰式大小寫并將變數名中的大寫視為單獨的單詞是足夠聰明的,這使得它變得更加無價。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/532619.html
