我正在構建一個 chrome 擴展,并將其與livereload-js. 它正在作業,只是呼叫會chrome.runtime.reload()引發一個錯誤,即該函式reload在chrome.runtime. 這很奇怪,因為檔案說這個方法應該在那里,當我閱讀reload 方法的檔案時,它說這個方法應該是可用的,不需要任何額外的權限。如果這已在 Manifest 版本 3 中洗掉,則檔案中未對此進行解釋。
為了簡化,我已經從應用程式中洗掉了大部分代碼,只是試圖讓 livereload 作業。這是我的manifest.json:
{
"name": "Cool AF",
"description": "something cool",
"version": "1.1",
"manifest_version": 3,
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["https://nevermind/*"],
"css": ["main.css"],
"js": ["main.js", "livereload.js"]
}
],
"host_permissions": ["http://localhost:35729/"],
"permissions": ["storage", "management", "activeTab", "alarms", "background"]
}
中的代碼livereload.js考慮它是否是 chrome 擴展并呼叫chrome.runtime.reload(),這會引發錯誤。我已經從擴展中洗掉了所有其他代碼,除了console.log讓我知道擴展正在加載。關于如何讓reload函式出現在chrome.runtime物件上的任何想法?
uj5u.com熱心網友回復:
chrome.runtime.reload不適用于內容腳本。
有關內容腳本可用的方法串列,請參閱檔案;一些 chrome.runtime方法是,但不是全部:
runtime:
connectgetManifestgetURLidonConnectonMessagesendMessage
慣用的方法是向您的后臺腳本發送訊息以請求它執行內容腳本不允許執行的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/459641.html
標籤:javascript 谷歌浏览器 谷歌浏览器扩展 浏览器扩展
上一篇:marginStart marginEnd就關于上述兩個用法展開討論
下一篇:當瀏覽器選項卡隱藏且不活動時,Chrome(和其他瀏覽器)如何處理設定為高于1000毫秒的“setTimeout”?
