![](/img/trans.png)
[英]How to use Chrome.tabs eventListeners in Javascript
[英]I am trying to use chrome.storage.sync and chrome.tabs.create to transfer data that user inputed and use it as the url for chrome.tabs api
我正在嘗試使用 chrome.storage.sync 和 chrome.tabs.create 來制作它,以便用戶將某些網站放在選項菜單中,並在單擊按鈕時打開這些網站。
我遇到了麻煩,因為我不確定如何從 chrome.storage.syng.get 獲取輸入並將其提供給 chrome.tabs.create,因為 chrome.tabs.create 要求 url 的字符串。 對於這個問題的措辭多么糟糕,我深表歉意,但希望您可以通過我的代碼理解。
背景腳本:
chrome.storage.sync.get('website1', function(website1){
chrome.tabs.create ({url: 'website1'})
});
chrome.storage.sync.get('website2', function(website2){
chrome.tabs.create ({url: 'website2'})
});
chrome.storage.sync.get('website3', function(website3){
chrome.tabs.create ({url: 'website3'})
});
在我在這里的這段代碼中,它只是打開一個選項卡,試圖訪問一個名為“website 3”的網站,因為它認為那是 url,但它應該代表用戶輸入的內容。我該如何輸入代碼,以便它將用戶輸入的內容作為 url 插入。
抱歉,這措辭令人困惑,我很難描述我的問題。
回調收到一個object ,它的每個鍵對應於您請求的鍵。 順便說一句,您可以在一個電話中請求多個密鑰:
chrome.storage.sync.get(['website1', 'website2', 'website3'], data => {
if (data.website1) chrome.tabs.create({url: data.website1});
if (data.website2) chrome.tabs.create({url: data.website2});
if (data.website3) chrome.tabs.create({url: data.website3});
});
您可以使用循環:
chrome.storage.sync.get(['website1', 'website2', 'website3'], data => {
for (const url of Object.values(data)) {
chrome.tabs.create({url});
}
});
同樣,您可以在一次調用中存儲多個密鑰:
chrome.storage.sync.set({
website1: 'url1',
website2: 'url2',
website3: 'url3',
});
您可以在一個鍵下存儲一組 URL:
chrome.storage.sync.set({
websites: ['url1', 'url2', 'url3'],
});
...並閱讀它:
chrome.storage.sync.get('websites', data => {
for (const url of data.websites || []) {
chrome.tabs.create({url});
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.